MongoDB में $pull ऑपरेटर का उपयोग करके ऐरे से मान निकालना
MongoDB में किसी ऐरे से विशिष्ट मानों को निकालने के लिए $pull ऑपरेटर का उपयोग किया जाता है। जब आपको एकाधिक दस्तावेज़ों से मान निकालने हों, तो multi: true विकल्प सेट करें।
उदाहरण: संग्रह और दस्तावेज़ बनाना
सबसे पहले, एक संग्रह बनाते हैं जिसमें नेस्टेड ऐरे वाले दस्तावेज़ हों:
> db.demo392.insertOne(
{
Name: 'Chris',
details: [
{ _id: '101' },
{ _id: '102' }
]
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e5d2b3322064be7ab44e802") }
> db.demo392.insertOne(
{
Name: 'Chris',
details: [
{ _id: '104' },
{ _id: '101' }
]
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e5d2b3422064be7ab44e803") }
सभी दस्तावेज़ देखना
> db.demo392.find();
आउटपुट:
{ "_id" : ObjectId("5e5d2b3322064be7ab44e802"), "Name" : "Chris", "details" : [ { "_id" : "101" }, { "_id" : "102" } ] }
{ "_id" : ObjectId("5e5d2b3422064be7ab44e803"), "Name" : "Chris", "details" : [ { "_id" : "104" }, { "_id" : "101" } ] }
$pull के साथ मान निकालना
अब _id: '101' वाले सभी तत्वों को details ऐरे से निकालते हैं:
> db.demo392.update(
{ },
{ $pull: { details: { _id: '101' } } },
{ multi: true }
)
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
परिणाम सत्यापित करना
> db.demo392.find();
आउटपुट:
{ "_id" : ObjectId("5e5d2b3322064be7ab44e802"), "Name" : "Chris", "details" : [ { "_id" : "102" } ] }
{ "_id" : ObjectId("5e5d2b3422064be7ab44e803"), "Name" : "Chris", "details" : [ { "_id" : "104" } ] }
मुख्य बिंदु: multi: true विकल्प सुनिश्चित करता है कि क्वेरी सभी मिलान करने वाले दस्तावेज़ों को अपडेट करे, न कि केवल पहले को।