एक सरणी में एकाधिक आइटम पुनर्प्राप्त करने के लिए, समग्र ढांचे का उपयोग करें। आइए पहले दस्तावेजों के साथ एक संग्रह बनाएं -
> db.retrieveMultipleDemo.insertOne( ... { ... "UserDetails": ... [ ... { "_id": "101", "UserName":"John", "UserAge": 23 }, ... { "_id": "102", "UserName":"Carol", "UserAge": 21 }, ... { "_id": "103", "UserName":"David", "UserAge": 23}, ... { "_id": "104", "UserName":"Sam", "UserAge": 25} ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5cd40c85edc6604c74817cf0") }
खोज () विधि की मदद से संग्रह से सभी दस्तावेजों को प्रदर्शित करने के लिए क्वेरी निम्नलिखित है -
> db.retrieveMultipleDemo.find().pretty();
यह निम्नलिखित आउटपुट देगा -
{ "_id" : ObjectId("5cd40c85edc6604c74817cf0"), "UserDetails" : [ { "_id" : "101", "UserName" : "John", "UserAge" : 23 }, { "_id" : "102", "UserName" : "Carol", "UserAge" : 21 }, { "_id" : "103", "UserName" : "David", "UserAge" : 23 }, { "_id" : "104", "UserName" : "Sam", "UserAge" : 25 } ] }
एक सरणी में एकाधिक आइटम पुनर्प्राप्त करने के लिए क्वेरी निम्नलिखित है -
> db.retrieveMultipleDemo.aggregate([ ... {$unwind:"$UserDetails"}, ... {$match:{"UserDetails._id":{$in:myIds},"UserDetails.UserAge":23}}, ... {$group:{"_id":"_id","UserDetails":{$push:"$UserDetails"}}}, ... {$project:{"_id":0,"UserDetails":1}} ... ]);
यह निम्नलिखित आउटपुट देगा -
{ "UserDetails" : [ { "_id" : "101", "UserName" : "John", "UserAge" : 23 }, { "_id" : "103", "UserName" : "David", "UserAge" : 23 } ] }