MongoDB में $pull का उपयोग करके ऐरे से तत्व हटाना
ऐरे से विशिष्ट तत्व हटाने के लिए $pull का उपयोग करें।
कलेक्शन बनाना
> db.demo125.insertOne({"ListOfNames":["John","Chris","Bob","David","Carol"]});
{ "acknowledged": true, "insertedId": ObjectId("5e2f304068e7f832db1a7f55") }
अपडेट से पहले
> db.demo125.find().pretty();
{ "_id": ObjectId("5e2f304068e7f832db1a7f55"), "ListOfNames": [ "John", "Chris", "Bob", "David", "Carol" ] }
$pull के साथ अपडेट क्वेरी
> db.demo125.update(
{ },
{ $pull: { ListOfNames: { $in: ["David"] } } },
{ multi: true }
)
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
अपडेट के बाद
> db.demo125.find().pretty();
{ "_id": ObjectId("5e2f304068e7f832db1a7f55"), "ListOfNames": [ "John", "Chris", "Bob", "Carol" ] }
व्याख्या
- { }: खाली क्वेरी - सभी डॉक्यूमेंट्स से मेल खाता है
- $pull: ऐरे से मेल खाने वाले तत्वों को हटाता है
- $in: ["David"]: "David" मान से मेल खाता है (एकल मान के लिए सीधे "David" भी लिख सकते हैं)
- multi: true: सभी मिलान वाले डॉक्यूमेंट्स अपडेट करता है (डिफ़ॉल्ट false केवल पहला अपडेट करता है)
सरल सिंटैक्स
// $in के बिना (एकल मान के लिए)
db.demo125.update({}, { $pull: { ListOfNames: "David" } }, { multi: true })
नोट: आधुनिक MongoDB में updateMany() का उपयोग करें।