MongoDB में स्थिति ऑपरेटर और $push से नेस्टेड सरणी अपडेट करें
इसके लिए update कमांड और $push का उपयोग करें। आइए पहले दस्तावेज़ों के साथ एक संग्रह बनाते हैं:
>db.demo9.insertOne({"StudentDetails":[{"StudentName":"Chris","ListOfSubject":["MySQL","Java"]}]}); { "acknowledged" : true, "insertedId" : ObjectId("5e0f6438d7df943a7cec4f94") }
find().pretty() से सभी दस्तावेज़ प्रदर्शित करें:
> db.demo9.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5e0f6438d7df943a7cec4f94"), "StudentDetails" : [ { "StudentName" : "Chris", "ListOfSubject" : [ "MySQL", "Java" ] } ] }
शर्त मिलने पर सरणी तत्व अपडेट करने का क्वेरी ($push से "MongoDB" जोड़ें):
> db.demo9.update( { "StudentDetails.StudentName":"Chris"}, {$push:{"StudentDetails.$.ListOfSubject":"MongoDB"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
फिर से find().pretty() से दस्तावेज़ प्रदर्शित करें:
> db.demo9.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5e0f6438d7df943a7cec4f94"), "StudentDetails" : [ { "StudentName" : "Chris", "ListOfSubject" : [ "MySQL", "Java", "MongoDB" ] } ] }
व्याख्या: StudentDetails.$ उस सरणी तत्व को संदर्भित करता है जहां StudentName "Chris" है। $push उस तत्व की ListOfSubject सरणी में नया मान जोड़ता है।