MongoDB में $ne ऑपरेटर के साथ नकारात्मक क्वेरी
किसी शर्त से मेल न खाने वाले रिकॉर्ड्स खोजने के लिए $ne का उपयोग करें।
कलेक्शन बनाना
> db.demo148.insertOne({"Message":"Hello"});
{ "acknowledged": true, "insertedId": ObjectId("5e32fb37fdf09dd6d08539c0") }
> db.demo148.insertOne({"Message":"Good"});
{ "acknowledged": true, "insertedId": ObjectId("5e32fb3efdf09dd6d08539c1") }
> db.demo148.insertOne({"Message":"Bye"});
{ "acknowledged": true, "insertedId": ObjectId("5e32fb42fdf09dd6d08539c2") }
सभी डॉक्यूमेंट्स
> db.demo148.find();
$ne क्वेरी
> db.demo148.find({'Message': {'$ne': 'Good'}}).toArray(function(err, output) { console.log(output); });परिणाम
व्याख्या
- $ne: "नॉट इक्वल टू" - निर्दिष्ट मान से भिन्न वाले डॉक्यूमेंट्स चुनता है
- {'Message': {'$ne': 'Good'}}: Message फील्ड "Good" नहीं होने वाले डॉक्यूमेंट्स
- Hello और Bye लौटाए गए, Good बाहर रखा गया
- .toArray(): कर्सर को ऐरे में बदलता है (शेल में डिफ़ॉल्ट रूप से प्रिंट होता है)
संबंधित ऑपरेटर्स
- $nin: ऐरे में नहीं -
{ field: { $nin: [val1, val2] } } - $not: अभिव्यक्ति को नकारता है -
{ field: { $not: { $gt: 10 } } } - $exists: false: फील्ड अनुपस्थित वाले डॉक्यूमेंट्स
प्रदर्शन नोट
$ne इंडेक्स का उपयोग कर सकता है लेकिन बहुत कम चयनात्मकता होने पर (अधिकांश डॉक्यूमेंट्स मेल खाते हैं) पूर्ण स्कैन कर सकता है।