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

MongoDBのオブジェクトIDの配列に対して$lookupを実行しますか?


これには、$lookupを使用します。これにより、同じデータベース内のシャーディングされていないコレクションへの左外部結合が実行され、「結合された」コレクションからドキュメントがフィルタリングされて処理されます。

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

> db.demo395.insertOne({Name:"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5e782317aa3ef9ab8ab207")
}
> db.demo395.insertOne({Name:"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5e782317aa3ef9ab8ab208")
}

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

> db.demo395.find();

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

{ "_id" : ObjectId("5e5e782317aa3ef9ab8ab207"), "Name" : "Chris" }
{ "_id" : ObjectId("5e5e782317aa3ef9ab8ab208"), "Name" : "David" }

ドキュメントを使用して2番目のコレクションを作成しましょう-

> db.demo396.insertOne({"details" : [
...    ObjectId("5e5e782317aa3ef9ab8ab207"),
...    ObjectId("5e5e782317aa3ef9ab8ab208")
...    ]
... }
... )
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5e787817aa3ef9ab8ab209")
}

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

> db.demo396.find();

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

{ "_id" : ObjectId("5e5e787817aa3ef9ab8ab209"), "details" : [
ObjectId("5e5e782317aa3ef9ab8ab207"), ObjectId("5e5e782317aa3ef9ab8ab208") ] }

以下は、オブジェクトIDの配列に対して$lookupを実行するためのクエリです-

> db.demo396.aggregate([
...    { "$lookup": {
...       "from": "demo395",
...       "let": { "details": "$details" },
...       "pipeline": [
...          { "$match": { "$expr": { "$in": [ "$_id", "$$details" ] } } }
...       ],
...       "as": "output"
...    }}
... ])

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

{ "_id" : ObjectId("5e5e787817aa3ef9ab8ab209"), "details" : [ ObjectId("5e5e782317aa3ef9ab8ab207"), ObjectId("5e5e782317aa3ef9ab8ab208") ], "output" : [ { "_id" : ObjectId("5e5e782317aa3ef9ab8ab207"), "Name" : "Chris" }, { "_id" : ObjectId("5e5e782317aa3ef9ab8ab208"), "Name" : "David" } ] }

  1. インデックスNの配列オブジェクトを更新するMongoDBクエリ?

    MongoDBのupdate()を使用して、配列オブジェクトを更新します。ドット表記の使用も必要です。ドキュメントを使用してコレクションを作成しましょう- > db.demo489.insertOne( ... { ... ... ...    details : [{ ...       id : 101, ...       "Info1" : { ...          "StudentName" : "

  2. MongoDBの配列オブジェクトを使用して配列要素の値をインクリメントします

    配列オブジェクトの値をインクリメントするには、$incを使用します。ドキュメントを使用してコレクションを作成しましょう- >db.demo506.insertOne({"details":[{id:1,Quantity:4},{id:2,Quantity:3},{id:3,Quantity:2},{id:4,Qua ntity:7}]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e882ed6987b6e