मौजूदा संग्रह फ़ील्ड को अपडेट करने के समान है, $set
यदि निर्दिष्ट फ़ील्ड मौजूद नहीं है तो एक नया फ़ील्ड जोड़ देगा।
इस उदाहरण को देखें:
> db.foo.find()
> db.foo.insert({"test":"a"})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> item = db.foo.findOne()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> db.foo.update({"_id" :ObjectId("4e93037bbf6f1dd3a0a9541a") },{$set : {"new_field":1}})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "new_field" : 1, "test" : "a" }
संपादित करें:
यदि आप अपने सभी संग्रह में एक नया_फ़ील्ड जोड़ना चाहते हैं, तो आपको सभी दस्तावेजों को अपडेट करने के लिए खाली चयनकर्ता का उपयोग करना होगा और सही (अंतिम परम) के लिए बहु ध्वज सेट करना होगा
db.your_collection.update(
{},
{ $set: {"new_field": 1} },
false,
true
)
संपादित करें:
उपर्युक्त उदाहरण में पिछले 2 फ़ील्ड और झंडे false, true
निर्दिष्ट करते हैं । upsert
multi
उपवाक्य: यदि सही पर सेट किया जाता है, तो कोई नया दस्तावेज़ बनाता है जब कोई दस्तावेज़ क्वेरी मापदंड से मेल नहीं खाता।
बहु: यदि सही पर सेट है, तो क्वेरी मापदंड को पूरा करने वाले कई दस्तावेजों को अपडेट करें। यदि गलत पर सेट किया गया है, तो एक दस्तावेज़ अपडेट करता है।
यह versions
पहले मानगो के लिए है 2.2
। नवीनतम संस्करणों के लिए क्वेरी को थोड़ा बदल दिया जाता है
db.your_collection.update({},
{$set : {"new_field":1}},
{upsert:false,
multi:true})