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" }
व्याख्या
$ifNullFirstNameफील्ड की जांच करता है।- यदि मान
nullया अनुपस्थित है, तो यह दूसरी सरणी तत्व ("NOT PROVIDED") लौटाता है। - यदि मान गैर-नल है (उदाहरण के लिए "Chris"), तो यह मूल मान लौटाता है।
उन्नत उपयोग
- नेस्टेड फील्ड:
{ $ifNull: [ "$address.city", "Unknown" ] } - कई फॉलबैक:
{ $ifNull: [ "$primary", "$secondary", "default" ] }(MongoDB 5.0+ में$firstNके माध्यम से समर्थित)। - $cond के साथ संयोजन: अधिक जटिल तर्क के लिए।
नोट
$ifNull केवल null और अनुपस्थित फील्ड को संभालता है; यह खाली स्ट्रिंग (""), 0, या false को नल नहीं मानता।