MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

他のフィールドがnullの場合に一方のフィールドを選択するMongoDBクエリ?


もう一方がnullの場合に一方のフィールドを選択するには、$ifNullを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo182.insertOne({"FirstName":"Chris","LastName":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e398ea19e4f06af55199802")
}
> db.demo182.insertOne({"FirstName":null,"LastName":"Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e398ead9e4f06af55199803")
}
>
> db.demo182.insertOne({"FirstName":"John","LastName":"Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e398ebf9e4f06af55199804")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo182.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e398ea19e4f06af55199802"), "FirstName" : "Chris", "LastName" : null }
{ "_id" : ObjectId("5e398ead9e4f06af55199803"), "FirstName" : null, "LastName" : "Miller" }
{ "_id" : ObjectId("5e398ebf9e4f06af55199804"), "FirstName" : "John", "LastName" : "Smith" }

以下は、一方のフィールドがnullの場合に一方のフィールドを選択するためのクエリです-

> db.demo182.aggregate([
...   {
...      $project: {
...         "item": 1,
...         "Result": { "$ifNull": [ "$FirstName", "$LastName" ] }
...      }
...   }
...])

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e398ea19e4f06af55199802"), "Result" : "Chris" }
{ "_id" : ObjectId("5e398ead9e4f06af55199803"), "Result" : "Miller" }
{ "_id" : ObjectId("5e398ebf9e4f06af55199804"), "Result" : "John" }

  1. ネストされたドキュメントを更新するMongoDBクエリ?

    ネストされたドキュメントを更新するには、update()を使用し、その中でドット表記を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo607.insertOne( ...    { ...       id:1, ...       "Info1" : { ...          "Name" : "Chris", ...      

  2. フィールド値で「@email」のような文字列を検索するMongoDBクエリ

    MongoDB find()を使用して電子メール文字列を検索します。ドキュメントを使用してコレクションを作成しましょう- > db.demo727.insertOne({UserId:"John@email.com"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eab375f43417811278f5898") } > db.demo727.insertOne({UserId:"