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

一方のフィールドがnullの場合は一方のフィールドを選択し、両方がnullでない場合は最初のフィールドを選択するMongoDBクエリ?


これには、$ifNull演算子を使用します

まず、ドキュメントを使用してコレクションを作成しましょう-

> dbquerySelectDemoinsertOne({"Value1":10,"Value2":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefc0ceef71edecf6a1f6b6")
}
> dbquerySelectDemoinsertOne({"Value1":null,"Value2":30});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefc0d7ef71edecf6a1f6b7")
}
> dbquerySelectDemoinsertOne({"Value1":60,"Value2":40});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefc0e2ef71edecf6a1f6b8")
}

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

> dbquerySelectDemofind()pretty();

出力

{
   "_id" : ObjectId("5cefc0ceef71edecf6a1f6b6"),
   "Value1" : 10,
   "Value2" : null
}
{
   "_id" : ObjectId("5cefc0d7ef71edecf6a1f6b7"),
   "Value1" : null,
   "Value2" : 30
}
{
   "_id" : ObjectId("5cefc0e2ef71edecf6a1f6b8"),
   "Value1" : 60,
   "Value2" : 40
}

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

> dbquerySelectDemoaggregate([
   {
      $project: {
         "Value1": { "$ifNull": [ "$Value1", "$Value2" ] }
      }
   }
]);

出力

{ "_id" : ObjectId("5cefc0ceef71edecf6a1f6b6"), "Value1" : 10 }
{ "_id" : ObjectId("5cefc0d7ef71edecf6a1f6b7"), "Value1" : 30 }
{ "_id" : ObjectId("5cefc0e2ef71edecf6a1f6b8"), "Value1" : 60 }


  1. フィールドの戻り値を制限するMongoDBクエリ?

    これには、$sliceを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo594.insertOne( ...    { ...       id:1, ...       details:[ ...          {Name:"Chris",Age:21}, ...          {Name:"Bob",Age:20}, ...

  2. 新しいフィールドを追加し、価格結果を特定の数値で割った値を連結するMongoDBクエリ

    新しいフィールドを追加するには、MongoDBの$addFieldsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo719.insertOne( ...    { ...       "Number":"7374644", ...       "details" : { ...          "otherDetails" : [ ... &