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

MongoDB में सबडॉक्यूमेंट्स के ऐरे को कैसे अपडेट करें?

MongoDB में पोजिशनल ऑपरेटर के साथ सबडॉक्यूमेंट्स ऐरे अपडेट करना

अपडेट करने के लिए update() के साथ $set का उपयोग करें।

कलेक्शन बनाना

>db.demo134.insertOne({"EmployeeId":101,"EmployeeDetails":[{"EmployeeName":"Chris","EmployeeAge":27},{"EmployeeName":"Bob","EmployeeAge":28}]});
{ "acknowledged": true, "insertedId": ObjectId("5e319b2f68e7f832db1a7f7c") }
>db.demo134.insertOne({"EmployeeId":102,"EmployeeDetails":[{"EmployeeName":"David","EmployeeAge":24},{"EmployeeName":"Carol","EmployeeAge":29}]});
{ "acknowledged": true, "insertedId": ObjectId("5e319b4468e7f832db1a7f7d") }

अपडेट से पहले

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

सबडॉक्यूमेंट अपडेट क्वेरी

> db.demo134.update(
    {
        "EmployeeId": 101,
        "EmployeeDetails.EmployeeName": "Chris"
    },
    {
        $set: { "EmployeeDetails.$.EmployeeName": "Robert" }
    }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

अपडेट के बाद

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

व्याख्या

  • क्वेरी: दो शर्तें - EmployeeId: 101 AND EmployeeDetails ऐरे में EmployeeName: "Chris" वाला तत्व
  • $set: निर्दिष्ट फील्ड अपडेट करता है
  • पोजिशनल $: EmployeeDetails ऐरे में "Chris" से मेल खाने वाले तत्व की स्थिति को संदर्भित करता है
  • केवल EmployeeId 101 वाले डॉक्यूमेंट में Chris को Robert में बदला गया
  • EmployeeId 102 वाला डॉक्यूमेंट अपरिवर्तित रहा

महत्वपूर्ण नोट

क्वेरी में ऐरे फील्ड पर शर्त निर्दिष्ट करना आवश्यक है ("EmployeeDetails.EmployeeName": "Chris") ताकि पोजिशनल ऑपरेटर सही तत्व की पहचान कर सके।

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

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

  1. - MongoDB क्वेरीज़ में सबडॉक्यूमेंट्स को कैसे एक्सेस करें?

    MongoDB में सबडॉक्यूमेंट्स एक्सेस करने के लिए, डॉट नोटेशन के साथ find() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo670.insertOne({ id:101, details: { Name:Chris, Age:21, CountryName:US, SubjectName:MongoDB } }); { acknowledged :

  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(