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

MongoDB में कलेक्शन से विशिष्ट डॉक्यूमेंट अपडेट करने के लिए क्वेरी

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

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

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

>db.demo135.insertOne({"Details":[{"EmployeeId":101,"EmployeeName":"Chris","EmployeeSalary":45000},{"EmployeeId":102,"EmployeeName":"Chris","EmployeeSalary":45000}]});
{ "acknowledged": true, "insertedId": ObjectId("5e31a5ddfdf09dd6d085399c") }

अपडेट से पहले

> db.demo135.find().pretty();
{ "_id": ObjectId("5e31a5ddfdf09dd6d085399c"), "Details": [ { "EmployeeId": 101, "EmployeeName": "Chris", "EmployeeSalary": 45000 }, { "EmployeeId": 102, "EmployeeName": "Chris", "EmployeeSalary": 45000 } ] }

दूसरे डॉक्यूमेंट को अपडेट करने की क्वेरी (EmployeeId: 102)

> db.demo135.update(
    { "Details.EmployeeId": 102 },
    { $set: { "Details.$.EmployeeName": "John Doe" } }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

अपडेट के बाद

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

व्याख्या

  • क्वेरी: {"Details.EmployeeId": 102}: उस डॉक्यूमेंट को ढूंढता है जहां Details ऐरे में EmployeeId 102 वाला तत्व है
  • $set: फील्ड मान सेट करता है
  • पोजिशनल ऑपरेटर $: क्वेरी से मेल खाने वाले ऐरे तत्व की स्थिति को संदर्भित करता है
  • "Details.$.EmployeeName": केवल मिलान वाले ऐरे तत्व के EmployeeName को अपडेट करता है
  • पहला तत्व (EmployeeId: 101) अपरिवर्तित रहता है

महत्वपूर्ण

पोजिशनल ऑपरेटर $ केवल क्वेरी में उपयोग किए गए ऐरे फील्ड के पहले मिलान वाले तत्व को अपडेट करता है। एकाधिक तत्वों को अपडेट करने के लिए $[ ] (MongoDB 3.6+) या updateMany के साथ पाइपलाइन का उपयोग करें।

  1. - MongoDB क्वेरी: कलेक्शन से पूरा ऐरे हटाएं

    कलेक्शन से पूरा ऐरे हटाने के लिए, MongoDB में $unset का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo609.insertOne({ListOfSubject:[MySQL,MongoDB]}); { acknowledged : true, insertedId : ObjectId(5e974695f57d0dc0b182d62c) } > db.demo609.insertOne({ListOfSubject:[Java]}); { a

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    नेस्टेड दस्तावेज को अपडेट करने के लिए, update() का उपयोग करें और उसके भीतर डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo607.insertOne({ id:1, Info1: { Name: Chris, Age: 21, Info2: { SubjectName: MongoDB, Ma

  1. - MongoDB डॉक्यूमेंट से विशिष्ट मान फ़िल्टर करें

    विशिष्ट मान फ़िल्टर करने के लिए MongoDB में $filter का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo751.insertOne( { _id: 101, details: [ { Name: Robert, id:110,Age:21}, { Name: Rae, id:110,Age:22}, {Name: Ralph, id:116,Age:23} ] } ); { acknowledged : true, insertedId : 101 } find() से सभी डॉक