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

MongoDB में नेस्टेड ऐरे में नया आइटम कैसे जोड़ें?

MongoDB में नेस्टेड ऐरे में नया फील्ड जोड़ना

इसके लिए find() के साथ update() का उपयोग करें।

कलेक्शन बनाना

> db.demo124.insertOne(
    {
        "Name": "John",
        "Id": 101,
        "ProjectDetails": [
            {
                "ProjectName1": "Online Book",
                "ProjectName2": "Online Banking"
            },
            {
                "ProjectName1": "Online Library Management System",
                "ProjectName2": "School Management System"
            }
        ]
    }
);
{ "acknowledged": true, "insertedId": ObjectId("5e2f2c8b140daf4c2a3544bb") }

अपडेट से पहले

> db.demo124.find();
{ "_id": ObjectId("5e2f2c8b140daf4c2a3544bb"), "Name": "John", "Id": 101, "ProjectDetails": [ { "ProjectName1": "Online Book", "ProjectName2": "Online Banking" }, { "ProjectName1": "Online Library Management System", "ProjectName2": "School Management System" } ] }

नेस्टेड ऐरे में नया फील्ड जोड़ने की क्वेरी

> db.demo124.find().toArray().forEach(
    function(d){
        for(var i = 0; i < d.ProjectDetails.length; ++i) {
            d.ProjectDetails[i]['ProjectName3'] = 'Online Snake Game';
        }
        db.demo124.update({_id: d._id}, d);
    }
);

अपडेट के बाद

> db.demo124.find().pretty();
{ "_id": ObjectId("5e2f2c8b140daf4c2a3544bb"), "Name": "John", "Id": 101, "ProjectDetails": [ { "ProjectName1": "Online Book", "ProjectName2": "Online Banking", "ProjectName3": "Online Snake Game" }, { "ProjectName1": "Online Library Management System", "ProjectName2": "School Management System", "ProjectName3": "Online Snake Game" } ] }

व्याख्या

  1. find().toArray(): सभी डॉक्यूमेंट्स को ऐरे में लोड करता है
  2. forEach: प्रत्येक डॉक्यूमेंट पर पुनरावृति करता है
  3. for लूप: ProjectDetails ऐरे के प्रत्येक तत्व पर पुनरावृति करता है
  4. d.ProjectDetails[i]['ProjectName3'] = 'Online Snake Game': प्रत्येक सब-डॉक्यूमेंट में नया फील्ड जोड़ता है
  5. update({_id: d._id}, d): संशोधित डॉक्यूमेंट सेव करता है

आधुनिक दृष्टिकोण (MongoDB 3.6+)

db.demo124.updateMany(
    {},
    { $set: { "ProjectDetails.$[].ProjectName3": "Online Snake Game" } }
)

$[ ] ऑल पोजिशनल ऑपरेटर ऐरे के सभी तत्वों को अपडेट करता है बिना क्लाइंट-साइड लूप के।

  1. - MongoDB में ऐरे में आइटम कैसे गिनें?

    ऐरे में आइटम गिनने के लिए length प्रॉपर्टी का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo440.insertOne( ...    { ...       "Name":"Chris", ...       "ListOfFriends":["John","Sam","Mik

  1. - MongoDB में प्रत्येक समूह में अधिकतम आइटम कैसे चुनें?

    आप $group का उपयोग कर सकते हैं। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo659.insertOne({Name:Chris,CountryName:US,Marks:50}); { acknowledged : true, insertedId : ObjectId(5ea1a50724113ea5458c7cf9) } > db.demo659.insertOne({Name:David,CountryName:US,Marks:60}); { acknowledged : true, in

  1. - MongoDB एग्रीगेशन: ऐरे के सबसेट एलिमेंट्स को जोड़ें

    ऐरे के सबसेट एलिमेंट्स को एक साथ जोड़ने के लिए, $first के साथ $sum का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo610.insertOne({Values:[10,20,30,40,50]}); { acknowledged : true, insertedId : ObjectId(5e9747b8f57d0dc0b182d62e) } find() मेथड की मदद से कलेक्शन के सभी दस्तावेज