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

MongoDB में $exists और $ne को कैसे लागू करें?

MongoDB में $exists और $ne को संयोजित करके मौजूद, गैर-खाली फील्ड्स के लिए फ़िल्टर करना

$exists ऑपरेटर जांचता है कि क्या एक फील्ड डॉक्यूमेंट में मौजूद है। $ne (नॉट इक्वल) ऑपरेटर एक विशिष्ट मान से मेल नहीं खाने वाले मानों से मेल खाता है। संयुक्त, वे उन डॉक्यूमेंट्स को फ़िल्टर करते हैं जहां एक फील्ड मौजूद है और खाली/नल नहीं है।

नमूना डेटा बनाना

> db.existsDemo.insertOne({"Name":"Chris","Age":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c3916d78f205348bc650") }
> db.existsDemo.insertOne({"Name":"","Age":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c39a6d78f205348bc651") }
> db.existsDemo.insertOne({"Name":null,"Age":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c3a66d78f205348bc652") }
> db.existsDemo.insertOne({"Age":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c3c36d78f205348bc653") }

सभी डॉक्यूमेंट्स देखना

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

आउटपुट:

{ "_id" : ObjectId("5cd7c3916d78f205348bc650"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5cd7c39a6d78f205348bc651"), "Name" : "", "Age" : null }
{ "_id" : ObjectId("5cd7c3a66d78f205348bc652"), "Name" : null, "Age" : 24 }
{ "_id" : ObjectId("5cd7c3c36d78f205348bc653"), "Age" : 23 }

$exists: true और $ne: "" के साथ क्वेरी करना

> db.existsDemo.find({
  "$and": [
    { "Name": { "$exists": true } },
    { "Name": { "$ne": "" } }
  ]
});

आउटपुट:

{ "_id" : ObjectId("5cd7c3916d78f205348bc650"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5cd7c3a66d78f205348bc652"), "Name" : null, "Age" : 24 }

व्याख्या

  • { Name: { $exists: true } } - उन डॉक्यूमेंट्स से मेल खाता है जहां Name फील्ड मौजूद है (पहले 3 डॉक्यूमेंट्स)।
  • { Name: { $ne: "" } } - उन डॉक्यूमेंट्स से मेल खाता है जहां Name खाली स्ट्रिंग नहीं है (पहला, तीसरा, चौथा डॉक्यूमेंट्स)।
  • $and दोनों को संयोजित करता है: Name मौजूद होना चाहिए और खाली स्ट्रिंग नहीं होना चाहिए।
  • परिणाम: डॉक्यूमेंट 1 (Chris) और डॉक्यूमेंट 3 (null Name)।
  • डॉक्यूमेंट 2 बाहर रखा गया (खाली स्ट्रिंग)। डॉक्यूमेंट 4 बाहर रखा गया (Name अनुपस्थित)।

नोट: null मान

$ne: "" null को नहीं** बाहर करता है क्योंकि null != ""। यदि आप null को भी बाहर करना चाहते हैं:

db.collection.find({
  $and: [
    { "Name": { $exists: true } },
    { "Name": { $ne: "" } },
    { "Name": { $ne: null } }
  ]
});

या संक्षिप्त रूप से:

db.collection.find({ "Name": { $exists: true, $nin: ["", null] } });

मुख्य बिंदु

  • $exists: true - फील्ड डॉक्यूमेंट में मौजूद होना चाहिए।
  • $ne: value - फील्ड मान निर्दिष्ट मान के बराबर नहीं होना चाहिए।
  • उपयोगकर्ता-इनपुट फील्ड्स को मान्य करने के लिए संयोजित करें (उपस्थित, खाली नहीं, null नहीं)।
  • $nin (नॉट इन) एक ही फील्ड पर मल्टीपल बहिष्करण मानों के लिए साफ सिंटैक्स है।
  1. - MongoDB में NumberLong(x) और NumberLong("x") का अंतर

    MongoDB में NumberLong(x) और NumberLong(x) के बीच महत्वपूर्ण अंतर है: NumberLong(x): संख्यात्मक मान को JavaScript नंबर के रूप में पार्स करता है, जो 64-बिट फ्लोटिंग-पॉइंट सटीकता सीमा (2^53 - 1) से अधिक होने पर मान को राउंड कर देता है। NumberLong(x): मान को स्ट्रिंग के रूप में पार्स करता है, जिससे 6

  1. - MongoDB और Python

    MongoDB एक व्यापक रूप से उपयोग किया जाने वाला डॉक्यूमेंट डेटाबेस है जो NoSQL DB का एक रूप भी है। Python कुछ पायथन मॉड्यूल्स के माध्यम से MongoDB के साथ इंटरैक्ट कर सकता है और Mongo DB के अंदर डेटा बना और मैनिपुलेट कर सकता है। इस लेख में हम इसे करना सीखेंगे। लेकिन MongoDB आपके सिस्टम में पहले से उपल

  1. - MongoDB एग्रीगेशन और प्रोजेक्शन

    इसके लिए aggregate() के साथ $project का उपयोग करें। एग्रीगेशन में $project पाइपलाइन में अगले चरण के लिए अनुरोधित फील्ड्स के साथ डॉक्यूमेंट्स को पास करता है। आइए एक कलेक्शन बनाते हैं: > db.demo762.insertOne({ _id : { userId:101, userName:Chris }, countryName : US, details : [ { Name : Robert, Due