MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB संग्रह में प्रत्येक दस्तावेज़ में नया फ़ील्ड जोड़ें

मौजूदा संग्रह फ़ील्ड को अपडेट करने के समान, $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}) 


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जांचें कि क्या MongoDB अप्सर्ट ने एक इंसर्ट या अपडेट किया है

  2. मोंगोडीबी $ मिलीसेकंड

  3. MongoDB मॉनिटरिंग सर्विस (MMS) का उपयोग करके MongoDB इंस्टेंस की निगरानी करना

  4. क्या कोई नेवला कनेक्ट त्रुटि कॉलबैक है?

  5. MongoDB में डेटाबेस को हटाने के 2 तरीके