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

MongoDB में नेस्टेड फील्ड को कैसे अपडेट करें?

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) उस विशिष्ट डॉक्यूमेंट को लक्षित करता है जिसे आप अपडेट करना चाहते हैं।
  1. - MongoDB में सशर्त अपडेट करना

    MongoDB में update() और $set का उपयोग करके सशर्त अपडेट करना MongoDB में किसी शर्त के आधार पर दस्तावेज़ को अपडेट करने के लिए update() मेथड के साथ क्वेरी फिल्टर और $set ऑपरेटर का उपयोग करें। upsert: true विकल्प दस्तावेज़ न मिलने पर नया दस्तावेज़ बनाता है। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.dem

  1. - MongoDB में फील्ड प्रोजेक्ट करना

    MongoDB एग्रीगेशन में $project और $cond का उपयोग करके डायनामिक फील्ड प्रोजेक्शन MongoDB में जब दस्तावेज़ों में अलग-अलग फील्ड नाम हों (जैसे Marks1/Score1), तो $project के साथ $cond और $ifNull का उपयोग करके एकीकृत स्कीमा में प्रोजेक्ट करें। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo439.insertOne(

  1. - MongoDB में _id फील्ड छिपाएं

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo575.insertOne({id:101,Information:{Name:Chris,Age:21}}); { acknowledged : true, insertedId : ObjectId(5e916a55581e9acd78b427f7) } > db.demo575.insertOne({id:102,Information:{Name:David,Age:20}}); { acknowledged : true, insertedId : ObjectId