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

MongoDB सरणी के कई रिकॉर्ड अपडेट करता है

आप एकल अद्यतन कार्रवाई में एकाधिक सरणी तत्वों को संशोधित नहीं कर सकते हैं। इस प्रकार, आपको उन दस्तावेज़ों को माइग्रेट करने के लिए अद्यतन दोहराना होगा जिन्हें संशोधित करने के लिए एकाधिक सरणी तत्वों की आवश्यकता होती है। आप संग्रह में प्रत्येक दस्तावेज़ के माध्यम से पुनरावृत्ति करके, $elemMatch के साथ बार-बार अपडेट लागू करके ऐसा कर सकते हैं जब तक दस्तावेज़ की सभी प्रासंगिक टिप्पणियों को प्रतिस्थापित नहीं कर दिया जाता, उदा.:

db.collection.find().forEach( function(doc) {
  do {
    db.collection.update({_id: doc._id,
                          comments:{$elemMatch:{user:"test",
                                                avatar:{$ne:"new_avatar.jpg"}}}},
                         {$set:{"comments.$.avatar":"new_avatar.jpg"}});
  } while (db.getPrevError().n != 0);
})

ध्यान दें कि यदि इस ऑपरेशन की दक्षता आपके आवेदन के लिए एक आवश्यकता है, तो आपको अपनी स्कीमा को सामान्य बनाना चाहिए ताकि उपयोगकर्ता के अवतार का स्थान प्रत्येक टिप्पणी के बजाय एक दस्तावेज़ में संग्रहीत हो।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो डीबी जावा 3.x ड्राइवर - क्वेरी द्वारा समूह

  2. स्प्रिंग बूट मोंगोडब कनेक्शन त्रुटि

  3. MongoDB से रैंडम रिकॉर्ड

  4. जावा में एम्बेडेड मोंगोडीबी

  5. डॉकर:स्प्रिंग बूट कंटेनर को मोंगो डीबी कंटेनर से जोड़ना