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

MongoDB में विशिष्ट फ़ील्ड वाले दस्तावेज़ खोजें

MongoDB में $exists ऑपरेटर का उपयोग करके फ़ील्ड उपस्थिति जांचना

$exists ऑपरेटर उन दस्तावेज़ों से मेल खाता है जिनमें निर्दिष्ट फ़ील्ड मौजूद होता है (मान null सहित)। यह वैकल्पिक फ़ील्ड्स वाले दस्तावेज़ों को फ़िल्टर करने के लिए उपयोगी है।

सैंपल डेटा बनाना

> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"Chris","ClientAge":34}]});
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"John","ClientLastName":"Smith","ClientAge":31}]});
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"David","ClientAge":33}]});
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"David","ClientLastName":"Miller","ClientAge":31}]});

सभी दस्तावेज़ देखना

> db.demo247.find().pretty();

आउटपुट:


क्वेरी: ClientLastName फ़ील्ड वाले दस्तावेज़ खोजें

> db.demo247.find({"ClientDetails.ClientLastName":{$exists:true}});

आउटपुट (केवल John और David/Miller जिनमें ClientLastName है):


$exists व्यवहार: महत्वपूर्ण नोट्स

  • { $exists: true } - फ़ील्ड मौजूद है (मान null भी हो तो भी मिलान करता है)
  • { $exists: false } - फ़ील्ड अनुपस्थित है
  • null मान वाला फ़ील्ड मौजूद माना जाता है: { field: null } पर { $exists: true } मिलान करता है

नेस्टेड ऐरे में $exists

उदाहरण में ClientDetails.ClientLastName डॉट नोटेशन का उपयोग करता है। यह ऐरे के कम से कम एक एलिमेंट में फ़ील्ड मौजूद होने पर मिलान करता है।

सटीक मिलान के लिए $elemMatch

> db.demo247.find({
    ClientDetails: {
        $elemMatch: { ClientLastName: { $exists: true } }
    }
});

सामान्य गलती

// गलत: null मान की जांच नहीं करता
{ field: { $ne: null } }

// सही: फ़ील्ड उपस्थिति जांचता है
{ field: { $exists: true } }
  1. - MongoDB दस्तावेजों में विशिष्ट मान से ऊपर के मान खोजें

    विशिष्ट मान से ऊपर के मान खोजने के लिए, MongoDB में $gte का उपयोग करके सिंटैक्स निम्न है: db.yourCollectionName.find({yourFieldName:{$gte:yourValue}}); आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo571.insertOne({Price:140}); { acknowledged : true, insertedId : ObjectId(5e909b3439cfeaaf0b

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

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

  1. - MongoDB में विशिष्ट स्ट्रिंग वाले दस्तावेज खोजें

    कौन सा दस्तावेज विशिष्ट स्ट्रिंग रखता है, यह खोजने के लिए find() के साथ $regex का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo597.insertOne({Name:John Doe}); { acknowledged : true, insertedId : ObjectId(5e947ae3f5f1e70e134e2690) } > db.demo597.insertOne({Name:John Smith})