MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी $ifNull

MongoDB में, $ifNull एक एकत्रीकरण पाइपलाइन ऑपरेटर है जो आपको null के स्थान पर उपयोग करने के लिए एक मान निर्दिष्ट करने की अनुमति देता है .

जिस तरह से यह काम करता है, आप एक अभिव्यक्ति और एक प्रतिस्थापन अभिव्यक्ति प्रदान करते हैं। यदि अभिव्यक्ति एक गैर-शून्य मान का मूल्यांकन करती है, तो वह अभिव्यक्ति वापस कर दी जाती है। लेकिन अगर व्यंजक एक शून्य मान पर मूल्यांकन करता है, $ifNull प्रतिस्थापन अभिव्यक्ति का मान लौटाता है।

शून्य मान में अपरिभाषित मानों या अनुपलब्ध फ़ील्ड के उदाहरण शामिल होते हैं।

उदाहरण

मान लीजिए हमारे पास test . नामक संग्रह है निम्नलिखित दस्तावेजों के साथ:

{ "_id" : 1, "data" : 250 }
{ "_id" : 2, "data" : -250 }
{ "_id" : 3, "data" : "Bucket" }
{ "_id" : 4, "data" : 0 }
{ "_id" : 5, "data" : ISODate("2021-01-03T23:30:15.100Z") }
{ "_id" : 6, "data" : null }
{ "_id" : 7, "data" : Infinity }
{ "_id" : 8, "data" : -Infinity }

अगर हम $ifNull . का इस्तेमाल करते हैं, तो यहां बताया गया है कि क्या होता है data पर ऑपरेटर फ़ील्ड:

db.test.aggregate(
   [
     {
       $project:
          {
            result: { $ifNull: [ "$data", "Value not provided" ] }
          }
     }
   ]
)

परिणाम:

{ "_id" : 1, "result" : 250 }
{ "_id" : 2, "result" : -250 }
{ "_id" : 3, "result" : "Bucket" }
{ "_id" : 4, "result" : 0 }
{ "_id" : 5, "result" : ISODate("2021-01-03T23:30:15.100Z") }
{ "_id" : 6, "result" : "Value not provided" }
{ "_id" : 7, "result" : Infinity }
{ "_id" : 8, "result" : -Infinity }

हम देख सकते हैं कि केवल एक फ़ील्ड का शून्य मान था और इसलिए, यह केवल वही था जिसने "Value not provided" लौटाया ।

अपरिभाषित और अनुपलब्ध फ़ील्ड

जैसा कि बताया गया है, अपरिभाषित मान और अनुपलब्ध फ़ील्ड को शून्य मान के रूप में माना जाता है।

मान लीजिए हम अपने संग्रह में निम्नलिखित दस्तावेज़ जोड़ते हैं:

{ "_id" : 9, "data" : undefined }
{ "_id" : 10, "name" : "Homer" }

इस मामले में, दस्तावेज़ 9 में undefined है डेटा फ़ील्ड में, लेकिन दस्तावेज़ 10 में data भी नहीं है फ़ील्ड.

यहां बताया गया है कि जब हम $ifNull . लागू करते हैं तो क्या होता है उन दस्तावेज़ों के लिए:

db.test.aggregate(
   [
     { $match: { _id: { $in: [ 9, 10 ] } } },
     {
       $project:
          {
            result: { $ifNull: [ "$data", "Value not provided" ] }
          }
     }
   ]
)

परिणाम:

{ "_id" : 9, "result" : "Value not provided" }
{ "_id" : 10, "result" : "Value not provided" }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में क्वेरी परिणामों में एक फ़ील्ड का नाम बदलें

  2. जाओ:मोंगोडब डेटाबेस में लॉगिंग के लिए io.Writer इंटीफेस बनाएं

  3. Mongodb को 3.2 से 3.6 में अपग्रेड करते समय त्रुटि

  4. Ubuntu पर MongoDB का कौन सा संस्करण स्थापित है

  5. MongoDb . में 15 मिनट के समय अंतराल से समूह परिणाम