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

MongoDB में नेस्टेड दस्तावेज़ को कैसे अपडेट करें?

MongoDB में डॉट नोटेशन का उपयोग करके नेस्टेड दस्तावेज़ अपडेट करना

गहराई से नेस्टेड फ़ील्ड को अपडेट करने के लिए, $set ऑपरेटर के साथ डॉट नोटेशन का उपयोग करके सटीक पथ निर्दिष्ट करें। सरणी इंडेक्स (0-आधारित) का उपयोग सरणी के विशिष्ट तत्व को लक्षित करने के लिए किया जाता है।

नमूना डेटा: गहरी नेस्टिंग

> db.demo315.insertOne({
    _id: 101,
    details: [
        {Name: 'Chris', subjects: [{id: 1001, SubjectName: "MySQL"}]}
    ]
});
{ "acknowledged": true, "insertedId": 101 }

संरचना: details[0].subjects[0] में id: 1001 है। हम subjects सरणी में एक नया दूसरा तत्व (इंडेक्स 1) जोड़ना चाहते हैं।

अपडेट क्वेरी

> db.demo315.update({_id: 101}, {'$set': {"details.0.subjects.1.id": 1004}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
  • details.0 → पहली सरणी तत्व
  • subjects.1 → subjects सरणी में दूसरा स्थान (इंडेक्स 1)
  • id → सेट करने के लिए फ़ील्ड

परिणाम

{ "_id": 101, "details": [ { "Name": "Chris", "subjects": [ { "id": 1001, "SubjectName": "MySQL" }, { "id": 1004 } ] } ] }

subjects सरणी में अब दूसरा तत्व {id: 1004} है। यदि इंडेक्स सरणी की वर्तमान लंबाई से अधिक है, तो MongoDB बीच के स्लॉट्स को null से भर देगा। सरणी में ऑब्जेक्ट जोड़ने के लिए $push अक्सर अधिक सुरक्षित होता है।

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

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

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo595.insertOne({ Information: [ { _id: new ObjectId(), Name:Chris }, { _id:new ObjectId(), Name:Robert } ] }); { acknowledged : true, insertedId : ObjectId(5e93369cfd2d90c177b5bce4) } find() मेथड की मदद से कलेक्शन के सभी

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    नेस्टेड दस्तावेज को अपडेट करने के लिए, update() का उपयोग करें और उसके भीतर डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo607.insertOne({ id:1, Info1: { Name: Chris, Age: 21, Info2: { SubjectName: MongoDB, Ma