MongoDB में ऐरे फील्ड्स की तुलना के साथ क्वेरी
ऐरे से फील्ड्स की तुलना करने के लिए $gt और $lt का उपयोग करें।
कलेक्शन बनाना
> db.demo147.insertOne({"Details":[{"Score":45},{"Score":46}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32fa21fdf09dd6d08539be") }
> db.demo147.insertOne({"Details":[{"Score":65},{"Score":86}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32fa40fdf09dd6d08539bf") }
सभी डॉक्यूमेंट्स
> db.demo147.find().pretty();
क्वेरी: Score 45 से अधिक और 50 से कम हो
> db.demo147.find({ 'Details.Score': { $gt: 45, $lt: 50 }});परिणाम
व्याख्या
- 'Details.Score': { $gt: 45, $lt: 50 }: Details ऐरे में कम से कम एक तत्व होना चाहिए जिसका Score 45 से अधिक और 50 से कम हो
- पहला डॉक्यूमेंट: Score 46 शर्त पूरी करता है (45 < 46 < 50) → शामिल
- दूसरा डॉक्यूमेंट: सभी Score 50 से अधिक हैं → बाहर
- नोट: 45 बराबर है, $gt सख्ती से अधिक है, इसलिए 45 मेल नहीं खाता
महत्वपूर्ण व्यवहार
ऐरे फील्ड पर रेंज क्वेरी ($gt, $lt संयोजन) में, MongoDB ऐरे के किसी भी तत्व से शर्तों का मिलान करता है। एक ही तत्व दोनों शर्तों को पूरा करे, यह आवश्यक नहीं है (हालांकि इस मामले में 46 दोनों पूरा करता है)।
सटीक मिलान के लिए $elemMatch