MongoDB में डॉट नोटेशन का उपयोग करके इनर फील्ड अपडेट करना
MongoDB में, आप $set ऑपरेटर के साथ डॉट नोटेशन का उपयोग करके एम्बेडेड डॉक्यूमेंट के अंदर एक विशिष्ट फील्ड को अपडेट कर सकते हैं। यह पूरे डॉक्यूमेंट को बदले बिना नेस्टेड फील्ड्स को संशोधित करने की अनुमति देता है।
सिंटैक्स
db.yourCollectionName.update(
{ "_id" : yourObjectId },
{ $set : { "yourOuterFieldName.yourInnerFieldName" : yourValue } }
);
उदाहरण: छात्र के पसंदीदा विषय को अपडेट करना
नमूना डेटा बनाना
> db.updateDocumentDemo.insertOne(
{
"StudentDetails" : {
"StudentFirstName" : "Adam",
"StudentLastName" : "Samith"
},
"StudentOtherDetails" : {
"StudentFavouriteSubject" : "MySQL",
"StudentScore" : 45
}
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cd50bb32cba06f46efe9efe") }
अपडेट से पहले डॉक्यूमेंट देखना
> db.updateDocumentDemo.find().pretty();
आउटपुट:
{
"_id" : ObjectId("5cd50bb32cba06f46efe9efe"),
"StudentDetails" : {
"StudentFirstName" : "Adam",
"StudentLastName" : "Samith"
},
"StudentOtherDetails" : {
"StudentFavouriteSubject" : "MySQL",
"StudentScore" : 45
}
}
नेस्टेड फील्ड को अपडेट करना
StudentOtherDetails के अंदर StudentFavouriteSubject को "MySQL" से "MongoDB" में बदलें:
> db.updateDocumentDemo.update(
{ "_id" : ObjectId("5cd50bb32cba06f46efe9efe") },
{ $set : { "StudentOtherDetails.StudentFavouriteSubject" : "MongoDB" } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
अपडेट के बाद डॉक्यूमेंट वेरिफाई करना
> db.updateDocumentDemo.find().pretty();
आउटपुट:
{
"_id" : ObjectId("5cd50bb32cba06f46efe9efe"),
"StudentDetails" : {
"StudentFirstName" : "Adam",
"StudentLastName" : "Samith"
},
"StudentOtherDetails" : {
"StudentFavouriteSubject" : "MongoDB",
"StudentScore" : 45
}
}
मुख्य बिंदु
- नेस्टेड फील्ड पथ को निर्दिष्ट करने के लिए डॉट नोटेशन (
outerField.innerField) का उपयोग करें। $setऑपरेटर केवल निर्दिष्ट फील्ड को संशोधित करता है, अन्य फील्ड्स को अपरिवर्तित छोड़ देता है।- सुनिश्चित करें कि क्वेरी फ़िल्टर (उदाहरण के लिए,
_id) उस विशिष्ट डॉक्यूमेंट को लक्षित करता है जिसे आप अपडेट करना चाहते हैं।