MongoDB में सरणी से विशिष्ट तत्व हटाने के लिए update() मेथड के साथ $pull ऑपरेटर का उपयोग करें।
उदाहरण
सरणी वाला दस्तावेज़ बनाएं:
> db.removingAnArrayElementDemo.insertOne({"UserMessage":["Hi","Hello","Bye"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cef97bdef71edecf6a1f6a4") }
दस्तावेज़ देखें:
> db.removingAnArrayElementDemo.find().pretty();
{ "_id" : ObjectId("5cef97bdef71edecf6a1f6a4"), "UserMessage" : [ "Hi", "Hello", "Bye" ] }
"Hello" तत्व हटाएं
> db.removingAnArrayElementDemo.update(
{_id: ObjectId("5cef97bdef71edecf6a1f6a4")},
{ "$pull": { "UserMessage": "Hello" } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
परिणाम जांचें:
> db.removingAnArrayElementDemo.find().pretty();
{ "_id" : ObjectId("5cef97bdef71edecf6a1f6a4"), "UserMessage" : [ "Hi", "Bye" ] }
मुख्य बिंदु:
$pullसरणी से सभी मिलान करने वाले मान हटा देता है- पहला आर्गुमेंट क्वेरी फिल्टर है (कौन सा दस्तावेज़ अपडेट करना है)
- दूसरा आर्गुमेंट अपडेट ऑपरेशन है (
$pullके साथ फील्ड और मान) - एकाधिक दस्तावेज़ों के लिए
updateMany()या{multi: true}का उपयोग करें
आधुनिक सिंटैक्स (MongoDB 3.2+):
db.removingAnArrayElementDemo.updateOne(
{_id: ObjectId("5cef97bdef71edecf6a1f6a4")},
{$pull: {"UserMessage": "Hello"}}
);