आपको $elemMatch का उपयोग करना होगा यदि आप एम्बेडेड दस्तावेज़ के एकाधिक फ़ील्ड के साथ क्वेरी करना चाहते हैं तो सरणी में एम्बेडेड दस्तावेज़ों को क्वेरी करने के लिए। तो आपकी क्वेरी इस तरह होनी चाहिए:
db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})
यदि आप ऐसे क्वेरी दस्तावेज़ चाहते हैं जिनमें (name:"x", value:"1")
. हो या (name:"y", value:"2")
उसी क्वेरी में, आप $or
. का उपयोग कर सकते हैं इस तरह elemMatch के साथ:
db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})
यदि आप ऐसे क्वेरी दस्तावेज़ चाहते हैं जिनमें (name:"x", value:"1")
. हो और (name:"y", value:"2")
उसी क्वेरी में, आप $and
. का उपयोग कर सकते हैं इस तरह elemMatch के साथ:
db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})