MongoDB एग्रीगेशन में $literal का उपयोग करके स्टेटिक फील्ड जोड़ना
$literal ऑपरेटर आपको एग्रीगेशन पाइपलाइन में एक स्थिर मान निर्दिष्ट करने की अनुमति देता है जिसे एक नए फील्ड के रूप में प्रोजेक्ट किया जा सकता है। यह गणना किए बिना क्वेरी परिणामों में मेटाडेटा, फ्लैग्स, या डिफ़ॉल्ट मान जोड़ने के लिए उपयोगी है।
नमूना डेटा बनाना
> db.fieldWithStaticValue.insertOne({"Name":"Larry","Age":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6554c7924bb85b3f48948") }
> db.fieldWithStaticValue.insertOne({"Name":"Chris","Age":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd655567924bb85b3f48949") }
> db.fieldWithStaticValue.insertOne({"Name":"David","Age":26});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd655607924bb85b3f4894a") }
सभी डॉक्यूमेंट्स देखना
> db.fieldWithStaticValue.find();
आउटपुट:
{ "_id" : ObjectId("5cd6554c7924bb85b3f48948"), "Name" : "Larry", "Age" : 24 }
{ "_id" : ObjectId("5cd655567924bb85b3f48949"), "Name" : "Chris", "Age" : 23 }
{ "_id" : ObjectId("5cd655607924bb85b3f4894a"), "Name" : "David", "Age" : 26 }
$literal के साथ स्टेटिक फील्ड जोड़ना
> db.fieldWithStaticValue.aggregate([
{
$project: {
Name: 1,
Age: 1,
"StaticValue": { $literal: 100 }
}
}
]);
आउटपुट:
{ "_id" : ObjectId("5cd6554c7924bb85b3f48948"), "Name" : "Larry", "Age" : 24, "StaticValue" : 100 }
{ "_id" : ObjectId("5cd655567924bb85b3f48949"), "Name" : "Chris", "Age" : 23, "StaticValue" : 100 }
{ "_id" : ObjectId("5cd655607924bb85b3f4894a"), "Name" : "David", "Age" : 26, "StaticValue" : 100 }
व्याख्या
$project- आउटपुट डॉक्यूमेंट्स के आकार को पुनर्निर्मित करता है।Name: 1, Age: 1- मौजूदा फील्ड्स शामिल करता है।{ $literal: 100 }- सभी आउटपुट डॉक्यूमेंट्स के लिए स्थिर मान 100 निर्दिष्ट करता है।
उपयोग के मामले
- रिपोर्टिंग के लिए स्थिर मेटाडेटा जोड़ना (उदाहरण के लिए, संस्करण, स्रोत सिस्टम, बैच आईडी)।
- डाउनस्ट्रीम प्रोसेसिंग के लिए डिफ़ॉल्ट मान या फ्लैग्स प्रदान करना।
- एक्सप्रेशन पार्सिंग से बचने के लिए स्ट्रिंग्स जिनमें विशेष वर्ण हैं, उन्हें एस्केप करना।
नोट
यह एग्रीगेशन पाइपलाइन एक कर्सर लौटाती है; यह मूल डॉक्यूमेंट्स को संशोधित नहीं करती है। परिणामों को स्थायी रूप से संग्रहीत करने के लिए, $merge या $out का उपयोग करें।