Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में किसी शर्त से मेल न खाने वाले रिकॉर्ड्स खोजें

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 इंडेक्स का उपयोग कर सकता है लेकिन बहुत कम चयनात्मकता होने पर (अधिकांश डॉक्यूमेंट्स मेल खाते हैं) पूर्ण स्कैन कर सकता है।

  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

    ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo592.insertOne({ id:101, details: [ { Name: Chris, Value: 200 }, { Name: David, Value: 800 } ] }); { acknowledged : true, insertedId : Ob

  1. - MongoDB में विशिष्ट फ़ील्ड न रखने वाले दस्तावेज़ ढूंढना

    किसी फ़ील्ड की अनुपस्थिति जांचने के लिए $exists: false का उपयोग करें। डेमो डेटा db.demo612.insertOne({id:1,Info:[{Name:Chris,Age:21},{Name:David}]}); क्वेरी db.demo612.aggregate([ {$unwind: $Info}, {$match: {Info.Age:{$exists: false}}}, {$project: {Info.Name: 1}} ]) परिणाम { _id : Obj

  1. - MySQL में केवल वही रिकॉर्ड कैसे डालें जो मौजूद नहीं हैं?

    MySQL में डुप्लिकेट रिकॉर्ड रोकने और केवल नए रिकॉर्ड डालने के लिए कॉलम पर UNIQUE INDEX बनाएं। टेबल निर्माण mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARCHAR(20) ); यूनिक इंडेक्स बनाएं mysql> CREATE UNIQUE INDEX index_on_FirstName ON DemoTab