MongoDB में जटिल क्वेरी ऑपरेटर्स का संयोजन
$eq, $not, $gt ऑपरेटर्स का संयोजन करके विशिष्ट शर्तों वाले डॉक्यूमेंट्स खोजें।
कलेक्शन बनाना
> db.demo130.insertOne(
{
"PlayerDetails": [{Score:56},{Score:78},{Score:89},{Score:97}]
}
);
{ "acknowledged": true, "insertedId": ObjectId("5e3065bf68e7f832db1a7f6d") }
> db.demo130.insertOne(
{
"PlayerDetails": [{Score:45},{Score:56}]
}
);
{ "acknowledged": true, "insertedId": ObjectId("5e3065c068e7f832db1a7f6e") }
सभी डॉक्यूमेंट्स
> db.demo130.find();
{ "_id": ObjectId("5e3065bf68e7f832db1a7f6d"), "PlayerDetails": [ { "Score": 56 }, { "Score": 78 }, { "Score": 89 }, { "Score": 97 } ] }
{ "_id": ObjectId("5e3065c068e7f832db1a7f6e"), "PlayerDetails": [ { "Score": 45 }, { "Score": 56 } ] }
क्वेरी: Score 56 हो और कोई भी Score 56 से अधिक न हो
> db.demo130.find({
"PlayerDetails.Score": {
"$eq": 56,
"$not": { "$gt": 56 }
}
})
परिणाम
{ "_id": ObjectId("5e3065c068e7f832db1a7f6e"), "PlayerDetails": [ { "Score": 45 }, { "Score": 56 } ] }
व्याख्या
- $eq: 56: कम से कम एक Score 56 होना चाहिए
- $not: { $gt: 56 }: कोई भी Score 56 से अधिक नहीं होना चाहिए
- पहला डॉक्यूमेंट: 56 है लेकिन 78, 89, 97 भी हैं (56 से अधिक) → बाहर
- दूसरा डॉक्यूमेंट: 56 है और अधिकतम 56 है (45, 56) → शामिल
महत्वपूर्ण नोट
ऐरे फील्ड्स पर क्वेरी करते समय, MongoDB ऐरे के किसी भी तत्व से शर्तों का मिलान करता है। दोनों शर्तें ऐरे के विभिन्न तत्वों से पूरी हो सकती हैं। सटीक मिलान के लिए $elemMatch का उपयोग करें।