ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं:
> db.demo592.insertOne({
"id":101,
"details": [
{ "Name": "Chris", "Value": "200" },
{ "Name": "David", "Value": "800" }
]
}); { "acknowledged" : true, "insertedId" : ObjectId("5e930d8ffd2d90c177b5bcd6") }
> db.demo592.insertOne({
"id":102,
"details": [
{ "Name": "Chris", "Value": "500" },
{ "Name": "David", "Value": "900" }
]
}); { "acknowledged" : true, "insertedId" : ObjectId("5e930d90fd2d90c177b5bcd7") }
find() मेथड की मदद से कलेक्शन के सभी दस्तावेज प्रदर्शित करें:
> db.demo592.find();
यह निम्न आउटपुट देगा:
{ "_id" : ObjectId("5e930d8ffd2d90c177b5bcd6"), "id" : 101, "details" : [ { "Name" : "Chris", "Value" : "200" }, { "Name" : "David", "Value" : "800" } ] }
{ "_id" : ObjectId("5e930d90fd2d90c177b5bcd7"), "id" : 102, "details" : [ { "Name" : "Chris", "Value" : "500" }, { "Name" : "David", "Value" : "900" } ] }
मैच करने के लिए क्वेरी (Chris का Value 500+ और David का Value 600+ हो):
> db.demo592.find({
"$and": [
{ "details": { "$elemMatch": { "Name": "Chris", "Value": { "$gte": "500" } } } },
{ "details": { "$elemMatch": { "Name": "David", "Value": { "$gte": "600" } } } }
]
});
यह निम्न आउटपुट देगा:
{ "_id" : ObjectId("5e930d90fd2d90c177b5bcd7"), "id" : 102, "details" : [ { "Name" : "Chris", "Value" : "500" }, { "Name" : "David", "Value" : "900" } ] }