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

MongoDBアグリゲーションで$ifNullを使用するにはどうすればよいですか?


$ ifNullは式を評価し、式がnull以外の値と評価された場合は、式の値を返します。

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

> db.demo372.insertOne({"FirstName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e591aea2ae06a1609a00af6")
}
> db.demo372.insertOne({"FirstName":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e591aef2ae06a1609a00af7")
}
> db.demo372.insertOne({"FirstName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e591af42ae06a1609a00af8")
}
> db.demo372.insertOne({"FirstName":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e591afb2ae06a1609a00af9")
}

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

> db.demo372.find();

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

{ "_id" : ObjectId("5e591aea2ae06a1609a00af6"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e591aef2ae06a1609a00af7"), "FirstName" : null }
{ "_id" : ObjectId("5e591af42ae06a1609a00af8"), "FirstName" : "David" }
{ "_id" : ObjectId("5e591afb2ae06a1609a00af9"), "FirstName" : null }

以下は、集計で$ifNullを使用するためのクエリです-

> db.demo372.aggregate(
...    [
...       {
...          $project: {
...
...             FirstName: { $ifNull: [ "$FirstName", "NOT PROVIDED" ] }
...          }
...       }
...    ]
... )

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

{ "_id" : ObjectId("5e591aea2ae06a1609a00af6"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e591aef2ae06a1609a00af7"), "FirstName" : "NOT PROVIDED" }
{ "_id" : ObjectId("5e591af42ae06a1609a00af8"), "FirstName" : "David" }
{ "_id" : ObjectId("5e591afb2ae06a1609a00af9"), "FirstName" : "NOT PROVIDED" }

  1. MongoDBで保存されたJavaScriptを操作する方法は?

    特別なsystem.jsコレクションに保存されます。これには、db.system.js.save()を使用します。以下は構文です- db.system.js.save({    _id: "anyFunctionName",    value: function (returnValue) {       return ‘yourMessage ' + returnValue;    } }) 上記の構文を実装しましょう。以下はクエリです- > db.sys

  2. MongoDB集計で複数のフィールドでカウント

    複数のフィールドでカウントするには、MongoDBで$facetを使用します。 $ facetは、同じ入力ドキュメントのセットの単一ステージ内で複数の集約パイプラインを処理します。ドキュメントを使用してコレクションを作成しましょう- > db.demo721.insertOne( ...    { ... ...       "details1": { ...          "id":101 ... ...