अलग-अलग क्रम में मानों के साथ सटीक सरणी मिलान खोजने के लिए, आप $all ऑपरेटर का उपयोग कर सकते हैं। आइए दस्तावेजों के साथ एक संग्रह बनाएं। निम्नलिखित प्रश्न है
>db.exactMatchArrayDemo.insertOne({"StudentName":"David","StudentAge":22,"StudentGameScores":[45,78,98]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9c94702d6669774125246c")
}
>db.exactMatchArrayDemo.insertOne({"StudentName":"Chris","StudentAge":23,"StudentGameScores":[45,78]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9c94a42d6669774125246d")
} खोज () विधि की मदद से संग्रह से सभी दस्तावेजों को प्रदर्शित करने के लिए क्वेरी निम्नलिखित है
> db.exactMatchArrayDemo.find().pretty();
यह निम्नलिखित आउटपुट उत्पन्न करेगा
{
"_id" : ObjectId("5c9c94702d6669774125246c"),
"StudentName" : "David",
"StudentAge" : 22,
"StudentGameScores" : [
45,
78,
98
]
}
{
"_id" : ObjectId("5c9c94a42d6669774125246d"),
"StudentName" : "Chris",
"StudentAge" : 23,
"StudentGameScores" : [
45,
78
]
} सटीक सरणी मिलान खोजने के लिए क्वेरी निम्नलिखित है
> db.exactMatchArrayDemo.find({ "StudentGameScores": { "$size" : 2, "$all": [ 78, 45 ] } }).pretty(); यह निम्नलिखित आउटपुट उत्पन्न करेगा
{
"_id" : ObjectId("5c9c94a42d6669774125246d"),
"StudentName" : "Chris",
"StudentAge" : 23,
"StudentGameScores" : [
45,
78
]
} सटीक सरणी मिलान खोजने के लिए क्वेरी निम्नलिखित है लेकिन ऑर्डर कोई फर्क नहीं पड़ता। हमने "StudentGameScores" फ़ील्ड को 3 मानों के साथ प्राप्त करने के लिए एक अलग आकार निर्धारित किया है
> db.exactMatchArrayDemo.find({ "StudentGameScores": { "$size" : 3, "$all": [ 78, 45 ] } }).pretty(); यह निम्नलिखित आउटपुट उत्पन्न करेगा
{
"_id" : ObjectId("5c9c94702d6669774125246c"),
"StudentName" : "David",
"StudentAge" : 22,
"StudentGameScores" : [
45,
78,
98
]
}