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

MongoDB में एक्जैक्ट एलिमेंट ऐरे में फील्ड कैसे अपडेट करें?


आप नीचे दिए गए स्टेटमेंट की मदद से MongoDB में एक्जैक्ट एलिमेंट ऐरे में अपडेट कर सकते हैं। सिंटैक्स इस प्रकार है:

{"yourArrayDocumentName.$.yourNestedArrayDocument.yourPosition":"yourValue"}}

उपरोक्त सिंटैक्स को समझने के लिए, आइए कुछ डॉक्यूमेंट्स के साथ एक कलेक्शन बनाएं। डॉक्यूमेंट के साथ कलेक्शन बनाने की क्वेरी इस प्रकार है:

> db.updateExactField.insertOne({"ActorId":1,"ActorDetails":[{"ActorName":"Johnny Depp","MovieList": ["The Tourist","Public Enemy"]},
  {"ActorName":"Chris Evans","MovieList":["Captain America","Avengers"]}]});

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

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

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

{ "_id" : ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" : 1, "ActorDetails" : [
  { "ActorName" : "Johnny Depp", "MovieList" : [ "The Tourist", "Public Enemy" ] },
  { "ActorName" : "Chris Evans", "MovieList" : [ "Captain America", "Avengers" ] }
] }

केस 1: यहां, एक्जैक्ट ऐरे एलिमेंट्स यानी 3rd पोजिशन के साथ अपडेट करें, जो इंडेक्स 2 है क्योंकि ऐरे 0 से शुरू होता है। क्वेरी इस प्रकार है:

> db.updateExactField.update(
  {"ActorDetails.ActorName":"Chris Evans"},
  {$set: {"ActorDetails.$.MovieList.2":"Avengers:Infinity War"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

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

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

{ "_id" : ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" : 1, "ActorDetails" : [
  { "ActorName" : "Johnny Depp", "MovieList" : [ "The Tourist", "Public Enemy" ] },
  { "ActorName" : "Chris Evans", "MovieList" : [ "Captain America", "Avengers", "Avengers:Infinity War" ] }
] }

उपरोक्त आउटपुट को देखें, मान "Avengers:Infinity War" 3rd पोजिशन यानी इंडेक्स 2 पर है।

केस 2: आइए अब इंडेक्स 1 यानी 2nd पोजिशन के साथ अपडेट करें। क्वेरी इस प्रकार है:

> db.updateExactField.update( {"ActorDetails.ActorName":"Chris Evans"}, {$set: {"ActorDetails.$.MovieList.1":"Gifted"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

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

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

{ "_id" : ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" : 1, "ActorDetails" : [
  { "ActorName" : "Johnny Depp", "MovieList" : [ "The Tourist", "Public Enemy" ] },
  { "ActorName" : "Chris Evans", "MovieList" : [ "Captain America", "Gifted", "Avengers:Infinity War" ] }
] }

उपरोक्त सैंपल आउटपुट को देखें, मान "Gifted" 2nd पोजिशन यानी इंडेक्स 1 पर है।

  1. - MongoDB में सरणी में एकाधिक तत्व कैसे अपडेट करें?

    MongoDB में (संस्करण 3.6+) सरणी के सभी तत्वों को अपडेट करने के लिए, ऑल स्थितीय ऑपरेटर $[] का उपयोग करें। यह फिल्टर से मेल खाने वाले दस्तावेज़ में निर्दिष्ट सरणी के हर तत्व पर अपडेट लागू करता है। उदाहरण: सर्वर लॉग सरणी वाला दस्तावेज़ > db.demo385.insertOne({ ServerLogs: [ { status: In

  1. - MongoDB में ऐरे के अंदर एलिमेंट्स कैसे अपडेट करें?

    ऐरे के अंदर एलिमेंट्स अपडेट करने के लिए MongoDB में $set का उपयोग करें। नमूना डेटा बनाना (CollegeDetails ऐरे) db.demo494.insertOne( { CollegeDetails : [ { CollegeName : MIT, Fees : 80000 }, { CollegeName : SU, Fees : 90000 } ] } ) अपडेट से पहले दस्तावेज़ देखना db.demo494.find().prett

  1. - MongoDB Array में Element Remove करना

    Element remove करने के लिए update में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना db.demo541.insertOne({software:{services:[gmail,facebook,yahoo]}}); { acknowledged : true, insertedId : ObjectId(