$unset ऑपरेटर के साथ खाली फ़ील्ड्स हटाएं
MongoDB में किसी फ़ील्ड को पूरी तरह से हटाने (न केवल खाली स्ट्रिंग सेट करने) के लिए $unset ऑपरेटर का उपयोग करें। यह फ़ील्ड को डॉक्यूमेंट से हटा देता है।
उदाहरण: संग्रह बनाना
> db.removeEmptyFieldsDemo.insertOne({"StudentName": ""});
{ "acknowledged": true, "insertedId": ObjectId("5ce92b9578f00858fb12e919") }
> db.removeEmptyFieldsDemo.insertOne({"StudentName": "Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5ce92b9878f00858fb12e91a") }
> db.removeEmptyFieldsDemo.insertOne({"StudentName": ""});
{ "acknowledged": true, "insertedId": ObjectId("5ce92b9c78f00858fb12e91b") }
> db.removeEmptyFieldsDemo.insertOne({"StudentName": "Robert"});
{ "acknowledged": true, "insertedId": ObjectId("5ce92ba078f00858fb12e91c") }
सभी डॉक्यूमेंट्स देखना
> db.removeEmptyFieldsDemo.find();
{ "_id": ObjectId("5ce92b9578f00858fb12e919"), "StudentName": "" }
{ "_id": ObjectId("5ce92b9878f00858fb12e91a"), "StudentName": "Chris" }
{ "_id": ObjectId("5ce92b9c78f00858fb12e91b"), "StudentName": "" }
{ "_id": ObjectId("5ce92ba078f00858fb12e91c"), "StudentName": "Robert" }
खाली फ़ील्ड्स हटाने की क्वेरी
updateMany के साथ $unset का उपयोग करके उन सभी डॉक्यूमेंट्स से StudentName फ़ील्ड हटाएं जहां यह खाली स्ट्रिंग है:
> db.removeEmptyFieldsDemo.updateMany(
{"StudentName": ""},
{ $unset: {"StudentName": 1} }
);
{ "acknowledged": true, "matchedCount": 2, "modifiedCount": 2 }
परिणाम जांचना
> db.removeEmptyFieldsDemo.find();
{ "_id": ObjectId("5ce92b9578f00858fb12e919") }
{ "_id": ObjectId("5ce92b9878f00858fb12e91a"), "StudentName": "Chris" }
{ "_id": ObjectId("5ce92b9c78f00858fb12e91b") }
{ "_id": ObjectId("5ce92ba078f00858fb12e91c"), "StudentName": "Robert" }
जिन डॉक्यूमेंट्स में StudentName खाली स्ट्रिंग था, उनसे वह फ़ील्ड पूरी तरह हटा दी गई है।
अंतर:
$set: {"StudentName": ""}फ़ील्ड को खाली स्ट्रिंग पर सेट करता है (फ़ील्ड मौजूद रहती है), जबकि$unsetफ़ील्ड को पूरी तरह हटा देता है।