MongoDB में $pull ऑपरेटर का उपयोग करके ObjectId ऐरे से मान निकालना
$pull ऑपरेटर एक ऐरे से उन सभी एलिमेंट्स को हटा देता है जो निर्दिष्ट शर्त से मेल खाते हैं। ObjectId ऐरे के साथ काम करते समय, तुलना के लिए ObjectId ऑब्जेक्ट का उपयोग करना आवश्यक है।
सैंपल डेटा बनाना
> db.demo258.insertOne({
"arrayOfObjectsId": [
ObjectId("5e47a5e81627c0c63e7dba92"),
ObjectId("5e47a5e51627c0c63e7dba91")
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a8211627c0c63e7dba97") }
दस्तावेज़ देखना
> db.demo258.find();
आउटपुट:
$pull के साथ विशिष्ट ObjectId निकालना
> db.demo258.update( { }, { $pull: { arrayOfObjectsId: { $in: [ ObjectId("5e47a5e81627c0c63e7dba92") ] } } } ); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })अपडेटेड दस्तावेज़ देखना
> db.demo258.find();आउटपुट (पहला ObjectId हटाया गया):
महत्वपूर्ण: ObjectId तुलना
- गलत:
{ $pull: { arrayOfObjectsId: "5e47a5e8..." } }- स्ट्रिंग ObjectId से मेल नहीं खाएगी - सही:
{ $pull: { arrayOfObjectsId: ObjectId("5e47a5e8...") } }- ObjectId ऑब्जेक्ट उपयोग करें - $in के साथ: एकाधिक ObjectIds के लिए
{ $in: [ ObjectId(...), ObjectId(...) ] }
सरल सिंटैक्स (सिंगल मान के लिए)
सभी दस्तावेज़ों से निकालने के लिए updateMany
संबंधित ऑपरेटर्स
$pullAll- सटीक मानों की सूची हटाने के लिए (शर्त नहीं)$pop- पहला या अंतिम एलिमेंट हटाने के लिए$push- एलिमेंट जोड़ने के लिए$addToSet- यूनिक एलिमेंट जोड़ने के लिए