MongoDB NOW
प्रदान करता है सिस्टम वैरिएबल जो आपको एग्रीगेशन पाइपलाइन का उपयोग करते समय वर्तमान डेटाटाइम मान प्राप्त करने की अनुमति देता है।
यह तब उपयोगी हो सकता है जब आप किसी दस्तावेज़ को वर्तमान डेटाटाइम के साथ अपडेट करना चाहते हैं।
MongoDB 4.2 से शुरू होकर, अद्यतन विधियाँ एक एकत्रीकरण पाइपलाइन को स्वीकार कर सकती हैं। इसलिए, NOW
$currentDate
. के विकल्प के रूप में इस्तेमाल किया जा सकता है अद्यतन विधियों में से किसी का उपयोग करते समय वर्तमान डेटाटाइम सेट करने के लिए फ़ील्ड अपडेट ऑपरेटर।
NOW
तक पहुंचने के लिए सिस्टम चर, इसे दो डॉलर के संकेतों के साथ उपसर्ग करें और इसे उद्धरणों में घेरें ("$$NOW"
)।
उदाहरण
मान लीजिए हमारे पास dogs
. नामक संग्रह है जिसमें निम्नलिखित दस्तावेज़ शामिल हैं:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }
यहां NOW
. का उपयोग करने का एक उदाहरण दिया गया है उस दस्तावेज़ को अद्यतन करते समय सिस्टम चर:
db.dogs.updateOne(
{ _id : 1 },
[
{ $set : { weight : 30, lastModified : "$$NOW" } }
]
)
आइए अब फिर से दस्तावेज़ पर एक नज़र डालते हैं:
db.dogs.find( { _id: 1 } ).pretty()
परिणाम:
{ "_id" : 1, "name" : "Fetch", "weight" : 30, "lastModified" : ISODate("2021-01-27T01:29:32.833Z") }
lastModified
फ़ील्ड को दिनांक ऑब्जेक्ट के साथ जोड़ा गया है जिसमें वर्तमान दिनांक और समय शामिल है।
एक CLUSTER_TIME
भी है सिस्टम वैरिएबल जो वर्तमान टाइमस्टैम्प लौटाता है, हालांकि यह केवल रेप्लिका सेट और शार्प्ड क्लस्टर पर उपलब्ध है।
यह भी ध्यान दें कि NOW
और CLUSTER_TIME
मान पूरे पाइपलाइन में समान रहते हैं।