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

MongoDB एग्रीगेशन में $ifNull का उपयोग कैसे करें?

MongoDB एग्रीगेशन में $ifNull एक्सप्रेशन एक एक्सप्रेशन का मूल्यांकन करता है और यदि यह गैर-नल है तो उसका मान लौटाता है; अन्यथा एक निर्दिष्ट प्रतिस्थापन मान लौटाता है। सिंटैक्स: { $ifNull: [ <expression>, <replacement> ] }।

उदाहरण: नल FirstName वाले दस्तावेज़

> db.demo372.insertOne({"FirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e591aea2ae06a1609a00af6") }
> db.demo372.insertOne({"FirstName":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e591aef2ae06a1609a00af7") }
> db.demo372.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e591af42ae06a1609a00af8") }
> db.demo372.insertOne({"FirstName":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e591afb2ae06a1609a00af9") }

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

> db.demo372.find();

आउटपुट: दो दस्तावेज़ जिनमें FirstName नल है।

एग्रीगेशन: नल को डिफ़ॉल्ट से बदलें

> db.demo372.aggregate([
    {
        $project: {
            FirstName: { $ifNull: [ "$FirstName", "NOT PROVIDED" ] }
        }
    }
])

परिणाम

{ "_id" : ObjectId("5e591aea2ae06a1609a00af6"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e591aef2ae06a1609a00af7"), "FirstName" : "NOT PROVIDED" }
{ "_id" : ObjectId("5e591af42ae06a1609a00af8"), "FirstName" : "David" }
{ "_id" : ObjectId("5e591afb2ae06a1609a00af9"), "FirstName" : "NOT PROVIDED" }

व्याख्या

  • $ifNull FirstName फील्ड की जांच करता है।
  • यदि मान null या अनुपस्थित है, तो यह दूसरी सरणी तत्व ("NOT PROVIDED") लौटाता है।
  • यदि मान गैर-नल है (उदाहरण के लिए "Chris"), तो यह मूल मान लौटाता है।

उन्नत उपयोग

  • नेस्टेड फील्ड: { $ifNull: [ "$address.city", "Unknown" ] }
  • कई फॉलबैक: { $ifNull: [ "$primary", "$secondary", "default" ] } (MongoDB 5.0+ में $firstN के माध्यम से समर्थित)।
  • $cond के साथ संयोजन: अधिक जटिल तर्क के लिए।

नोट

$ifNull केवल null और अनुपस्थित फील्ड को संभालता है; यह खाली स्ट्रिंग (""), 0, या false को नल नहीं मानता।

  1. - MongoDB $match के साथ डेट कैसे मैच करें?

    डेट मैच करने के लिए aggregate() के साथ $match का उपयोग करें। नमूना डेटा बनाना (ISODate के साथ) db.demo491.insertOne({ShippingDate:new ISODate()}); // वर्तमान तारीख सभी दस्तावेज़ देखना db.demo491.find(); { ShippingDate : ISODate(2020-01-10T00:00:00Z) } { ShippingDate : ISODate(2020-02-21T00:00:00

  1. - MongoDB में स्टोर्ड जावास्क्रिप्ट के साथ कैसे काम करें?

    यह विशेष system.js संग्रह में सहेजा जाता है। इसके लिए, db.system.js.save() का उपयोग करें। निम्न सिंटैक्स है: db.system.js.save({ _id: anyFunctionName, value: function (returnValue) { return yourMessage + returnValue; } }) आइए उपरोक्त सिंटैक्स लागू करें। क्वेरी निम्न है: > db.

  1. - MongoDB एग्रीगेशन में मल्टीपल फ़ील्ड्स द्वारा काउंट करना

    एक ही पाइपलाइन में कई फ़ील्ड्स पर काउंट करने के लिए $facet का उपयोग करें। डेमो डेटा db.demo721.insertOne({ details1: { id:101 }, details2: { id:101 }, details3: { id:101 } }); db.demo721.insertOne({ details1: { id:101 }, details2: { id:102 }, details3: { id:102 } }); क्वेरी