MongoDB में $unset: नेस्टेड फ़ील्ड/ऑब्जेक्ट पूरी तरह हटाना
$unset ऑपरेटर दस्तावेज़ से फ़ील्ड को पूरी तरह हटा देता है (मान null सेट करने के बजाय)। डॉट नोटेशन के साथ यह गहरे नेस्टेड ऑब्जेक्ट्स को भी हटा सकता है। multi: true (विरासत) या updateMany() सभी मिलान वाले दस्तावेज़ों पर लागू करता है।
नमूना डेटा
> db.demo348.insertOne({details: {studentDetails: {StudentName: "Robert"}}});
{ "acknowledged": true, "insertedId": ObjectId("5e553556f8647eb59e5620b2") }
> db.demo348.insertOne({details: {studentDetails: {StudentName: "Mike"}}});
{ "acknowledged": true, "insertedId": ObjectId("5e553563f8647eb59e5620b3") }
क्वेरी: सभी दस्तावेज़ों से studentDetails ऑब्जेक्ट हटाना
> db.demo348.update({}, {$unset: {"details.studentDetails": ""}}, {multi: true});
WriteResult({ "nMatched": 2, "nUpserted": 0, "nModified": 2 })
परिणाम
{ "details": {} }
{ "details": {} }
दोनों दस्तावेज़ों से details.studentDetails ऑब्जेक्ट पूरी तरह हटा दिया गया, खाली details ऑब्जेक्ट बचा। नोट: आधुनिक MongoDB में updateMany({}, {$unset: {"details.studentDetails": ""}}) का उपयोग करें। multi: true विरासत विकल्प है।