श्रेणी के आधार पर एम्बेडेड दस्तावेज़ों की एक सरणी को क्वेरी करने के लिए, कुल () का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo346.insertOne( ... { ... _id: 101, ... userDetails: [ ... { UserName: "Chris", Score:78}, ... { UserName: "David", Score:68}, ... { UserName: "Bob", Score:88} ... ] ... } ... ); { "acknowledged" : true, "insertedId" : 101 } > db.demo346.insertOne( ... { ... _id: 102, ... userDetails: [ ... { UserName: "Mike", Score:92}, ... { UserName: "Sam", Score:62}, ... { UserName: "Carol", Score:97} ... ] ... } ... ); { "acknowledged" : true, "insertedId" : 102 }
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo346.find();
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" : 101, "userDetails" : [ { "UserName" : "Chris", "Score" : 78 }, { "UserName" : "David", "Score" : 68 }, { "UserName" : "Bob", "Score" : 88 } ] } { "_id" : 102, "userDetails" : [ { "UserName" : "Mike", "Score" : 92 }, { "UserName" : "Sam", "Score" : 62 }, { "UserName" : "Carol", "Score" : 97 } ] }
रेंज के आधार पर MongoDB में एम्बेडेड दस्तावेज़ों की एक सरणी को क्वेरी करने का तरीका निम्नलिखित है -
> db.demo346.aggregate([ ... { "$match": { "$expr": { "$gte": [{ "$size": { "$ifNull": ["$userDetails", []] } }, 1] }}}, ... { "$addFields": { ... "userDetails": { ... "$filter": { ... "input": { "$ifNull": ["$userDetails", []] }, ... "cond": { ... "$and": [ ... { "$gte": ["$$this.Score", 80] }, ... { "$lte": ["$$this.Score", 99] } ... ] ... } ... } ... } ... }} ... ])
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" : 101, "userDetails" : [ { "UserName" : "Bob", "Score" : 88 } ] } { "_id" : 102, "userDetails" : [ { "UserName" : "Mike", "Score" : 92 }, { "UserName" : "Carol", "Score" : 97 } ] }