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

MongoDB में सबडॉक्यूमेंट में नई की एलिमेंट कैसे पुश करें?

MongoDB में सबडॉक्यूमेंट (नेस्टेड ऑब्जेक्ट) में नया फ़ील्ड जोड़ने के लिए डॉट नोटेशन के साथ $set ऑपरेटर का उपयोग करें।

सिंटैक्स

db.yourCollectionName.update(
  {"_id" : yourObjectId},
  {$set: {"yourOuterFieldName.anyInnerFieldName": yourValue}}
);

उदाहरण

खाली सबडॉक्यूमेंट वाला कलेक्शन बनाएं:

> db.pushNewKeyDemo.insertOne({"UserId":100,"UserDetails":{}});
{ "acknowledged" : true, "insertedId" : ObjectId("5cda58f5b50a6c6dd317adbf") }

दस्तावेज़ देखें:

> db.pushNewKeyDemo.find();
{ "_id" : ObjectId("5cda58f5b50a6c6dd317adbf"), "UserId" : 100, "UserDetails" : { } }

सबडॉक्यूमेंट में UserName फ़ील्ड जोड़ें

> db.pushNewKeyDemo.update(
  {"_id" : ObjectId("5cda58f5b50a6c6dd317adbf")},
  {$set: {"UserDetails.UserName": "David Miller"}}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

परिणाम जांचें:

> db.pushNewKeyDemo.find();
{ "_id" : ObjectId("5cda58f5b50a6c6dd317adbf"), "UserId" : 100, "UserDetails" : { "UserName" : "David Miller" } }

मुख्य बिंदु:

  • डॉट नोटेशन (UserDetails.UserName) नेस्टेड फ़ील्ड को लक्षित करता है
  • यदि फ़ील्ड मौजूद है तो मान अपडेट होता है, नहीं तो नया फ़ील्ड बनता है
  • $set केवल निर्दिष्ट फ़ील्ड को प्रभावित करता है, अन्य फ़ील्ड अपरिवर्तित रहते हैं

यह तरीका डायनामिक स्कीमा वाले एप्लिकेशन के लिए बहुत उपयोगी है जहां फ़ील्ड बाद में जोड़े जाते हैं।

  1. - MongoDB में सब-सब-सरणी में तत्व कैसे हटाएं?

    तत्व हटाने के लिए, $pull के साथ $(पोजिशनल) ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo679.insertOne( { id:1, details: [ { CountryName:US, information: [ { Name: Chris, FirstName: Name=C

  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(

  1. - MongoDB में Same Key पर Multiple OR Conditions

    इसके लिए simply $or once उपयोग करें। Collection बनाना > db.demo551.insertOne({Name:John}); { acknowledged : true, insertedId : ObjectId(5e8e36d39e5f92834d7f05e5) } > db.demo551.insertOne({Name:Chris Brown}); { acknowledged : true, insertedId : ObjectId(5e8e36d89e5f92834d7f05e6) } > db.demo