पोजिशनल ऑपरेटर ($) का उपयोग करके ऐरे का विशिष्ट एलिमेंट अपडेट करें
जब आपको किसी ऐरे के अंदर केवल एक विशिष्ट एलिमेंट को अपडेट करना हो, तो पोजिशनल $ ऑपरेटर का उपयोग करें। यह ऑपरेटर क्वेरी शर्त से मेल खाने वाले पहले ऐरे एलिमेंट की पहचान करता है और उसे अपडेट करता है।
उदाहरण: संग्रह बनाना
> db.updateASingleListDemo.insertOne({
_id: 1,
"EmployeeName": "Chris",
"EmployeeDetails": [
{"EmployeeId": "EMP-101", "EmployeeSalary": 18999}
]
});
{ "acknowledged": true, "insertedId": 1 }
डॉक्यूमेंट देखना
> db.updateASingleListDemo.find().pretty();
{
"_id": 1,
"EmployeeName": "Chris",
"EmployeeDetails": [
{"EmployeeId": "EMP-101", "EmployeeSalary": 18999}
]
}
सिंगल लिस्ट आइटम अपडेट करने की क्वेरी
यहां हम EmployeeId: "EMP-101" वाले एलिमेंट की सैलरी को 1 से बढ़ा रहे हैं:
> db.updateASingleListDemo.update(
{_id: 1, 'EmployeeDetails.EmployeeId': "EMP-101"},
{$inc: {'EmployeeDetails.$.EmployeeSalary': 1}}
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
अपडेट किया गया डॉक्यूमेंट देखना
> db.updateASingleListDemo.find().pretty();
{
"_id": 1,
"EmployeeName": "Chris",
"EmployeeDetails": [
{"EmployeeId": "EMP-101", "EmployeeSalary": 19000}
]
}
पोजिशनल $ ऑपरेटर ने क्वेरी शर्त EmployeeDetails.EmployeeId: "EMP-101" से मेल खाने वाले ऐरे एलिमेंट को पहचाना और केवल उसी के EmployeeSalary को अपडेट किया।