दस्तावेज़ अपडेट करना
किसी मौजूदा दस्तावेज़ को अपडेट करने के लिए, हम updateOne() या updateMany() विधियों का उपयोग कर सकते हैं।
पहला पैरामीटर एक क्वेरी ऑब्जेक्ट है जो परिभाषित करता है कि कौन सा दस्तावेज़ या दस्तावेज़ अपडेट किए जाने चाहिए।
दूसरा पैरामीटर एक ऑब्जेक्ट है जो अपडेट किए गए डेटा को परिभाषित करता है।
updateOne()
updateOne() विधि प्रदान की गई क्वेरी से मेल खाने वाले पहले दस्तावेज़ को अपडेट करती है।
आइए देखें कि "Post Title 1" शीर्षक वाली पोस्ट में कितने "likes" हैं:
उदाहरण
db.posts.find( { title: "Post Title 1" } )
अब हम इस पोस्ट में "likes" को 2 में अपडेट करेंगे। ऐसा करने के लिए, हमें $set ऑपरेटर का उपयोग करना होगा।
उदाहरण
db.posts.updateOne( { title: "Post Title 1" }, { $set: { likes: 2 } } )
दस्तावेज़ को फिर से जांचें, आप देखेंगे कि "likes" अपडेट हो गया है।
उदाहरण
db.posts.find( { title: "Post Title 1" } )
यदि नहीं मिला तो सम्मिलित करें
यदि दस्तावेज़ नहीं मिला है तो उसे सम्मिलित करना चाहते हैं, तो आप upsert विकल्प का उपयोग कर सकते हैं।
उदाहरण
दस्तावेज़ को अपडेट करें, लेकिन यदि नहीं मिला तो सम्मिलित करें:
db.posts.updateOne(
{ title: "Post Title 5" },
{
$set:
{
title: "Post Title 5",
body: "Body of post.",
category: "Event",
likes: 5,
tags: ["news", "events"],
date: Date()
}
},
{ upsert: true }
)
updateMany()
updateMany() विधि प्रदान की गई क्वेरी से मेल खाने वाले सभी दस्तावेज़ों को अपडेट करती है।
उदाहरण
सभी दस्तावेज़ों में likes को 1 से बढ़ाएँ। इसके लिए हम $inc (increment) ऑपरेटर का उपयोग करेंगे:
db.posts.updateMany({}, { $inc: { likes: 1 } })
अब सभी दस्तावेज़ों में likes की जांच करें, आप देखेंगे कि वे सभी 1 से बढ़ गए हैं।