MongoDB में $pull और $mod का उपयोग करके ऐरे से इवन नंबर्स हटाना
आप $pull ऑपरेटर के साथ $mod (मॉड्यूलो) का उपयोग करके एक ऐरे से सभी इवन नंबर्स को हटा सकते हैं। $mod: [2, 0] अभिव्यक्ति उन नंबर्स से मेल खाती है जो 2 से विभाज्य हैं (यानी, इवन नंबर्स)।
नमूना डेटा बनाना
> db.pullEvenNumbersDemo.insertOne({"AllNumbers":[101,102,104,106,108,109,110,112,14,17,18,21]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd45b072cba06f46efe9eea") }
ऑपरेशन से पहले डॉक्यूमेंट देखना
> db.pullEvenNumbersDemo.find().pretty();
आउटपुट:
{
"AllNumbers" : [ 102, 104, 106, 108, 109, 110, 112, 14, 17, 18, 21 ]
}
इवन नंबर्स निकालना
> db.pullEvenNumbersDemo.updateMany(
{},
{ "$pull": { "AllNumbers": { "$mod": [ 2, 0 ] } } }
);
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
परिणाम वेरिफाई करना
> db.pullEvenNumbersDemo.find().pretty();
आउटपुट:
{
"_id" : ObjectId("5cd45b072cba06f46efe9eea"),
"AllNumbers" : [ 101, 109, 17, 21 ]
}
यह कैसे काम करता है
{}- खाली फ़िल्टर कलेक्शन में सभी डॉक्यूमेंट्स से मेल खाता है।$pull- निर्दिष्ट शर्त से मेल खाने वाले ऐरे से सभी तत्वों को हटा देता है।$mod: [2, 0]- उन मानों से मेल खाता है जहांvalue % 2 == 0(इवन नंबर्स)।updateMany()- कलेक्शन में सभी डॉक्यूमेंट्स पर ऑपरेशन लागू करता है।
विविधताएं
- ऑड नंबर्स हटाने के लिए:
$mod: [2, 1]का उपयोग करें - एक विशिष्ट डॉक्यूमेंट को लक्षित करने के लिए: खाली फ़िल्टर
{}को{ _id: ObjectId("...") }जैसे फ़िल्टर से बदलें। - एकल अपडेट के लिए: यदि केवल एक डॉक्यूमेंट अपडेट करना हो तो
updateOne()का उपयोग करें।