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

MongoDB में सब-ऑब्जेक्ट अपडेट करें

MongoDB में $set से नेस्टेड सब-ऑब्जेक्ट अपडेट करना

एम्बेडेड डॉक्यूमेंट (सब-ऑब्जेक्ट) में नया फ़ील्ड जोड़ने या मौजूदा फ़ील्ड अपडेट करने के लिए डॉट नोटेशन के साथ $set ऑपरेटर उपयोग करें।

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.updateSubObjectDemo.insertOne({
  "ClientId": 100,
  "ClientDetails": {
    "ClientFirstName": "Adam"
  }
});
{ "acknowledged": true, "insertedId": ObjectId("5cd31434b64f4b851c3a13e9") }

डॉक्यूमेंट देखें

>> db.updateSubObjectDemo.find().pretty();
{
  "_id": ObjectId("5cd31434b64f4b851c3a13e9"),
  "ClientId": 100,
  "ClientDetails": {
    "ClientFirstName": "Adam"
  }
}

सब-ऑब्जेक्ट में ClientLastName जोड़ें

> db.updateSubObjectDemo.update(
  {ClientId: 100},
  {$set: {"ClientDetails.ClientLastName": "Smith"}}
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

अपडेट के बाद चेक करें

> db.updateSubObjectDemo.find().pretty();
{
  "_id": ObjectId("5cd31434b64f4b851c3a13e9"),
  "ClientId": 100,
  "ClientDetails": {
    "ClientFirstName": "Adam",
    "ClientLastName": "Smith"
  }
}

मुख्य बिंदु

  • ClientDetails.ClientLastName - डॉट नोटेशन से नेस्टेड फ़ील्ड पथ
  • $set केवल निर्दिष्ट फ़ील्ड बदलता है, बाकी सब-ऑब्जेक्ट अपरिवर्तित रहता है
  • अगर फ़ील्ड मौजूद नहीं है तो नया बन जाता है
  • पूरा सब-ऑब्जेक्ट रिप्लेस नहीं होता (वह $set के बिना होता)

आधुनिक सिंटैक्स

db.updateSubObjectDemo.updateOne(
  {ClientId: 100},
  {$set: {"ClientDetails.ClientLastName": "Smith"}}
)
  1. - MongoDB में $push के साथ सरणी अपडेट करें

    MongoDB में $push के साथ सरणी अपडेट करने के लिए, updateOne() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo526.insertOne( { CountryName: US, TeacherName: Bob, StudentInformation: [ { Name: Chris, Subject: MySQL, ListOfMailI

  1. - MongoDB दस्तावेज अपडेट करते समय कस्टम वेरिएबल का उपयोग कैसे करें

    अपडेट करने के लिए update() का उपयोग करें और कस्टम वेरिएबल बनाने और उपयोग करने का सिंटैक्स निम्न है: var anyVariableName=yourValue; db.yourCollectionName.update({filter},{$set:{yourFieldName:yourVariableName}}); आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo600.insertOne({id:1,Name:Robert}

  1. - MongoDB कलेक्शन को _id के लिए अपडेट करना

    _id के लिए अपडेट करने के लिए MongoDB में $set का उपयोग करें। आइए एक कलेक्शन बनाते हैं: db.demo741.insertOne({SubjectName:MySQL}); { acknowledged : true, insertedId : ObjectId(5ead718657bb72a10bcf0672) } > db.demo741.insertOne({SubjectName:C}); { acknowledged : true, insertedId : ObjectId(5ead718