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