आप मैच लागू करने से पहले एग्रीगेट का उपयोग कर सकते हैं और सरणी सूची को खोल सकते हैं। उपरोक्त अवधारणा को समझने के लिए, आइए हम दस्तावेजों के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है:
> db.filterArray.insertOne( { "L": [{ "N":1 }, { "N":2 } , { "N":3 }, { "N":4 }, { "N":5 } ]});
उपरोक्त क्वेरी को चलाने के बाद निम्नलिखित दिखाई देता है:
{ "acknowledged" : true, "insertedId" : ObjectId("5c6d63f2734e98fc0a434aeb") }
खोज () विधि की सहायता से संग्रह से दस्तावेज़ प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.filterArray.find().pretty();
निम्न आउटपुट है:
{ "_id" : ObjectId("5c6d63f2734e98fc0a434aeb"), "L" : [ { "N" : 1 }, { "N" : 2 }, { "N" : 3 }, { "N" : 4 }, { "N" : 5 } ] }
यहाँ MongoDB के साथ उप-दस्तावेज़ में सरणी फ़िल्टर करने के लिए क्वेरी है। हमने 3 से अधिक फ़ील्ड प्राप्त करने के लिए $gt का उपयोग किया है:
> db.filterArray.aggregate({ $match:{_id:ObjectId("5c6d63f2734e98fc0a434aeb")}}, { $unwind:'$L'}, {$match:{'L.N':{$gt:3}}}, {$group:{_id:'$_id',subDocument:{$push:'$L.N'}}}).pretty();
निम्न आउटपुट है:
{ "_id" : ObjectId("5c6d63f2734e98fc0a434aeb"), "subDocument" : [ 4, 5 ] }