मौजूदा संग्रह फ़ील्ड को अपडेट करने के समान, $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
झंडे
अप्सर्ट: यदि सत्य पर सेट किया जाता है, तो कोई दस्तावेज़ क्वेरी मानदंड से मेल नहीं खाने पर एक नया दस्तावेज़ बनाता है।
बहु: यदि सत्य पर सेट किया जाता है, तो क्वेरी मानदंड को पूरा करने वाले कई दस्तावेज़ों को अपडेट करता है। अगर गलत पर सेट है, तो एक दस्तावेज़ को अपडेट करें।
यह Mongo versions
. के लिए है 2.2
. से पहले . नवीनतम संस्करणों के लिए क्वेरी को थोड़ा बदल दिया गया है
db.your_collection.update({},
{$set : {"new_field":1}},
{upsert:false,
multi:true})