Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में एक की वैल्यू अपडेट करें जहां दूसरी की विशिष्ट मान हो

MongoDB में सरणी के अंदर किसी ऑब्जेक्ट की एक फील्ड के आधार पर उसी ऑब्जेक्ट की दूसरी फील्ड अपडेट करने के लिए $elemMatch के साथ $set और पोजिशनल ऑपरेटर $ का उपयोग करें।

उदाहरण

सबडॉक्यूमेंट सरणी वाला दस्तावेज़ बनाएं:

> db.keyValueDemo.insertOne(
  {
    "_id": new ObjectId(),
    "CustomerDetails": [
      {"Name": "Chris", "Age": 24},
      {"Name": "Robert", "Age": 29},
      {"Name": "David", "Age": 35}
    ]
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcf36ef71edecf6a1f6bf") }

दस्तावेज़ देखें:

> db.keyValueDemo.find().pretty();
{ "_id" : ObjectId("5cefcf36ef71edecf6a1f6bf"), "CustomerDetails" : [ { "Name" : "Chris", "Age" : 24 }, { "Name" : "Robert", "Age" : 29 }, { "Name" : "David", "Age" : 35 } ] }

Name "David" वाले ऑब्जेक्ट की Age को 56 पर अपडेट करें

> db.keyValueDemo.update(
  {"CustomerDetails": {"$elemMatch": {"Name": "David"}}},
  {"$set": {"CustomerDetails.$.Age": 56}}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

परिणाम जांचें:

> db.keyValueDemo.find().pretty();
{ "_id" : ObjectId("5cefcf36ef71edecf6a1f6bf"), "CustomerDetails" : [ { "Name" : "Chris", "Age" : 24 }, { "Name" : "Robert", "Age" : 29 }, { "Name" : "David", "Age" : 56 } ] }

व्याख्या:

  • $elemMatch - सरणी में दोनों शर्तें (Name: "David") एक ही ऑब्जेक्ट में पूरी हों यह सुनिश्चित करता है
  • $ पोजिशनल ऑपरेटर - $elemMatch से मिले हुए सरणी तत्व को संदर्भित करता है
  • $set - उस तत्व की Age फील्ड अपडेट करता है

आधुनिक सिंटैक्स (MongoDB 3.6+) - arrayFilters:

db.keyValueDemo.updateOne(
  {},
  {$set: {"CustomerDetails.$[elem].Age": 56}},
  {arrayFilters: [{"elem.Name": "David"}]}
);

यह अधिक स्पष्ट है और एकाधिक शर्तों के लिए बेहतर काम करता है।

  1. - MongoDB Query - केवल Specific Field Value Update करना

    आइए उदाहरण देखते हैं और documents के साथ collection बनाते हैं: Collection बनाना > db.demo557.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e8f28e954b4472ed3e8e864) } > db.demo557.insertOne({Name:David}); { acknowledged : true, insertedId : ObjectId(5e8f28ee54b4472ed3e

  1. - MongoDB: रेफरेंस को की के रूप में उपयोग करके मैन्युअली वैल्यू जोड़ें

    मैन्युअली वैल्यू जोड़ने के लिए, MongoDB में $push का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo585.insert({ firstName: John, lastName: Doe, SubjectName:MongoDB, Marks: [59] }); WriteResult({ nInserted : 1 }) > db.demo585.insert({ firstName: Chris,

  1. - कुंजी का उपयोग करके HashMap मान अपडेट करने के लिए Java प्रोग्राम

    इस लेख में, हम समझेंगे कि कुंजी का उपयोग करके HashMap का मान कैसे अपडेट करें। Java HashMap Java के Map इंटरफेस की हैश टेबल आधारित कार्यान्वयन है। यह कुंजी-मान जोड़े का संग्रह है। नीचे इसका प्रदर्शन है: मान लीजिए हमारा इनपुट है: इनपुट HashMap: {Java=1, Scala=2, Python=3} वांछित आउटपुट होगा: अपडेट