MongoDB में $pull ऑपरेटर का उपयोग करके खाली ऑब्जेक्ट हटाएं
MongoDB में किसी ऐरे के अंदर मौजूद खाली ऑब्जेक्ट्स को हटाने के लिए $pull ऑपरेटर का उपयोग किया जाता है। यह ऑपरेटर निर्दिष्ट शर्त से मेल खाने वाले सभी ऐरे एलिमेंट्स को हटा देता है।
उदाहरण: संग्रह बनाना और डेटा डालना
सबसे पहले एक संग्रह बनाते हैं जिसमें एक खाली ऑब्जेक्ट शामिल हो:
> db.removeEmptyObjectsDemo.insertOne(
{
"_id": 101,
"LoginDate": new ISODate(),
"UserDetails": [
{ "UserName": "John" },
{},
{ "UserName": "Sam" }
]
}
);
{ "acknowledged": true, "insertedId": 101 }
डॉक्यूमेंट्स देखना
संग्रह के सभी डॉक्यूमेंट्स देखने के लिए find() मेथड का उपयोग करें:
> db.removeEmptyObjectsDemo.find().pretty();
आउटपुट:
{
"_id": 101,
"LoginDate": ISODate("2019-05-25T04:46:29.505Z"),
"UserDetails": [
{ "UserName": "John" },
{},
{ "UserName": "Sam" }
]
}
खाली ऑब्जेक्ट हटाने की क्वेरी
$pull ऑपरेटर के साथ $exists: false शर्त का उपयोग करके उन ऑब्जेक्ट्स को हटाएं जिनमें UserName फ़ील्ड नहीं है:
> db.removeEmptyObjectsDemo.update(
{},
{ "$pull": { "UserDetails": { "UserName": { "$exists": false } } } },
{ "multi": true }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
परिणाम जांचना
फिर से find() चलाकर देखें कि खाली ऑब्जेक्ट हटा दिया गया है:
> db.removeEmptyObjectsDemo.find().pretty();
आउटपुट:
{
"_id": 101,
"LoginDate": ISODate("2019-05-25T04:46:29.505Z"),
"UserDetails": [
{ "UserName": "John" },
{ "UserName": "Sam" }
]
}
इस तरह $pull ऑपरेटर की मदद से आप ऐरे के अंदर मौजूद खाली ऑब्जेक्ट्स को आसानी से हटा सकते हैं।