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

शर्त के साथ MongoDB अद्यतन

Mongo 4.2 से शुरू हो रहा है , db.collection.update() एक एकत्रीकरण पाइपलाइन को स्वीकार कर सकता है, अंत में किसी अन्य फ़ील्ड के आधार पर एक फ़ील्ड के अद्यतन/निर्माण की अनुमति देता है:

// { a: "Hello", b: "World" }
// { a: "Olleh", b: "Dlrow" }
db.collection.update(
  {},
  [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ],
  { multi: true }
)
// { a: "Hello", b: "World", active: true  }
// { a: "Olleh", b: "Dlrow", active: false }
  • पहला भाग {} मिलान क्वेरी है, जो फ़िल्टर करना है कि कौन से दस्तावेज़ों को अद्यतन करना है (हमारे मामले में सभी दस्तावेज़)।

  • दूसरा भाग [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ] अद्यतन एकत्रीकरण पाइपलाइन है (एक एकत्रीकरण पाइपलाइन के उपयोग को दर्शाने वाले वर्ग कोष्ठक पर ध्यान दें)। $set एक नया एकत्रीकरण ऑपरेटर है और $addFields . का उपनाम है . फिर किसी भी एकत्रीकरण ऑपरेटर का उपयोग $set . के भीतर किया जा सकता है मंच; हमारे मामले में एक सशर्त समानता जांच जिस पर नए active . के लिए उपयोग किए जाने वाले मान पर निर्भर करता है फ़ील्ड.

  • मत भूलना { multi: true } , अन्यथा केवल पहला मिलान करने वाला दस्तावेज़ अपडेट किया जाएगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेस्टेड स्ट्रक्चर्स को एमजीओ के साथ स्टोर करना

  2. MongoDB सटीक ऐरे मैच खोजें लेकिन ऑर्डर कोई मायने नहीं रखता

  3. उल्का ऐप - एक तैनात ऐप के डीबी को रीसेट करना

  4. मोंगोडब में सरणी के एन-वें तत्व को कैसे हटाएं

  5. MongoDB में Enums