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

MongoDB में डॉक्यूमेंट्स ऐरे में ऑब्जेक्ट्स अपडेट करना (नेस्टेड अपडेटिंग)?


डॉक्यूमेंट के ऐरे में ऑब्जेक्ट्स अपडेट करने के लिए, आपको update() मेथड का उपयोग करना होगा। update() मेथड को समझने के लिए, आइए एक कलेक्शन डॉक्यूमेंट के साथ बनाएं। कलेक्शन बनाने के लिए डॉक्यूमेंट के साथ क्वेरी इस प्रकार है:

> db.updateObjects.insertOne({"CustomerId":1,"CustomerName":"Larry","TotalItems":100,
  "ItemDetails":[
    { "NameOfItem":"Item_1", "Amount":450 },
    { "NameOfItem":"Item_2", "Amount":500 },
    { "NameOfItem":"Item_3", "Amount":200 }
  ]
});

निम्नलिख आउटपुट है:

{ "acknowledged" : true, "insertedId" : ObjectId("5c6d688b0c3d5054b766a769") }

अब आप find() मेथड की मदद से कलेक्शन से डॉक्यूमेंट्स प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है:

> db.updateObjects.find().pretty();

निम्नलिखित आउटपुट ऊपर बनाए गए कलेक्शन से डॉक्यूमेंट्स प्रदर्शित करता है:

{ "_id" : ObjectId("5c6d688b0c3d5054b766a769"), "CustomerId" : 1, "CustomerName" : "Larry", "TotalItems" : 100,
  "ItemDetails" : [
    { "NameOfItem" : "Item_1", "Amount" : 450 },
    { "NameOfItem" : "Item_2", "Amount" : 500 },
    { "NameOfItem" : "Item_3", "Amount" : 200 }
  ] }

"Amount":200 को 130 मान से इन्क्रीमेंट करें। क्वेरी इस प्रकार है। यहां, हमने फील्ड के मान को इन्क्रीमेंट करने के लिए $inc ऑपरेटर का उपयोग किया है:

> db.updateObjects.update({"CustomerId":1,"ItemDetails.NameOfItem":"Item_3"}, {$inc:{"ItemDetails.$.Amount":130}}, false,true);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

हमने सफलतापूर्वक मान को अपडेट/इन्क्रीमेंट किया है। आइए कलेक्शन से डॉक्यूमेंट प्रदर्शित करें। क्वेरी इस प्रकार है:

> db.updateObjects.find().pretty();

निम्नलिखित आउटपुट है:

{ "_id" : ObjectId("5c6d688b0c3d5054b766a769"), "CustomerId" : 1, "CustomerName" : "Larry", "TotalItems" : 100,
  "ItemDetails" : [
    { "NameOfItem" : "Item_1", "Amount" : 450 },
    { "NameOfItem" : "Item_2", "Amount" : 500 },
    { "NameOfItem" : "Item_3", "Amount" : 330 }
  ] }

सैंपल आउटपुट को देखें, Amount 200 को 130 से इन्क्रीमेंट किया गया है, जो अब 330 है।

  1. - MongoDB में $push के साथ सरणी अपडेट करें

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

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

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

  1. - MongoDB में विशिष्ट नेस्टेड डॉक्यूमेंट्स के लिए ऑब्जेक्ट्स की सरणी पर क्वेरी कैसे करें?

    ऑब्जेक्ट्स की सरणी के लिए नेस्टेड डॉक्यूमेंट्स पर क्वेरी करने के लिए find() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo763.insertOne( { _id:1, CountryName:US, studentInformation: [ { StudentName:Chris }, { StudentName:David, StudentAge:22 } ] } ); { acknowledged : true, insertedId : 1 } f