MongoDB में नेस्टेड दस्तावेज़ अपडेट करने के लिए UPDATE() और पोजिशनल $ ऑपरेटर का उपयोग करें।
नमूना डेटा बनाना (नेस्टेड ऐरे)
> db.demo643.insertOne({
details: [
{ "CountryName":"US", StudentDetails:[{Name:"Chris"},{SubjectName:"MySQL"}] },
{ "CountryName":"UK", StudentDetails:[{Name:"Bob"},{SubjectName:"Java"}] }
]
} )
दस्तावेज़ देखना
> db.demo643.find();
{ "details" : [ { "CountryName" : "US", "StudentDetails" : [ { "Name" : "Chris" }, { "SubjectName" : "MySQL" } ] }, { "CountryName" : "UK", "StudentDetails" : [ { "Name" : "Bob" }, { "SubjectName" : "Java" } ] } ] }
नेस्टेड एम्बेडेड दस्तावेज़ अपडेट करने की क्वेरी (UK वाले में Marks जोड़ना)
> db.demo643.update({"details.CountryName": "UK"}, {"$push": {"details.$.StudentDetails": {Marks:78}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
अपडेट के बाद दस्तावेज़ देखना
> db.demo643.find().pretty();
{ "details" : [ { "CountryName" : "US", "StudentDetails" : [ { "Name" : "Chris" }, { "SubjectName" : "MySQL" } ] }, { "CountryName" : "UK", "StudentDetails" : [ { "Name" : "Bob" }, { "SubjectName" : "Java" }, { "Marks" : 78 } ] } ] }
व्याख्या: details.CountryName: "UK" क्वेरी बाहरी ऐरे में मिलान ढूंढती है। पोजिशनल ऑपरेटर $ मिलान वाले बाहरी ऐरे एलिमेंट की स्थिति को संदर्भित करता है। $push उस एलिमेंट के StudentDetails ऐरे में नया ऑब्जेक्ट जोड़ता है।