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

एक MongoDB दस्तावेज़ सरणी में अद्यतन वस्तुओं (नेस्टेड अद्यतन)?

<घंटा/>

किसी दस्तावेज़ की सरणी में वस्तुओं को अद्यतन करने के लिए, आपको अद्यतन () विधि का उपयोग करने की आवश्यकता है। अद्यतन () विधि को समझने के लिए, आइए हम दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है:

> 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")
}

अब आप किसी संग्रह से दस्तावेज़ों को ढूँढ़ने () विधि की सहायता से प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है:

> 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
      }
   ]
}

वेतन वृद्धि “राशि”: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
      }
   ]
}

नमूना आउटपुट को देखें, राशि 200 को 130 से बढ़ा दिया गया है, जो अब 330 है।


  1. MongoDB में $ पुश के साथ एक सरणी अद्यतन कर रहा है

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

  1. नेस्टेड दस्तावेज़ को अद्यतन करने के लिए MongoDB क्वेरी

    आइए हम दस्तावेजों के साथ एक संग्रह बनाते हैं - > db.demo595.insertOne( { "Information": [    { "_id": new ObjectId(), Name:"Chris" },    { _id:new ObjectId(), Name:"Robert" } ] } ); {    "acknowledged" : true,  

  1. MongoDB के साथ विशिष्ट नेस्टेड दस्तावेज़ों के लिए वस्तुओं की एक सरणी पर पूछताछ?

    नेस्टेड दस्तावेज़ों के लिए ऑब्जेक्ट्स की एक सरणी पर क्वेरी करने के लिए, ढूंढें () का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - > db.demo763.insertOne( ...    { ...       _id:1, ...       CountryName:"US", ...       "s