आपका उदाहरण ठीक काम करता है:
db.so.drop();
db.so.insert(
{
"_id" : ObjectId("51ee899ec15d5aaff39d3353"),
"first" : "first",
"last" : "last",
"email" : "email",
"phone" : "555 555 5555",
"userRole" : "su",
"cards" : [
{
"rfid_id" : ObjectId("51ee899ec15d5aaff39d3359")
}
],
"zones" : [
{
"zone_id" : ObjectId("51ee899ec15d5aaff39d3357")
}
]
});
db.so.update({}, {$pull:{ "cards": {"rfid_id": ObjectId("51ee899ec15d5aaff39d3359")}}}, false, false)
db.so.find().pretty();
आउटपुट:
{
"_id" : ObjectId("51ee899ec15d5aaff39d3353"),
"cards" : [ ],
"email" : "email",
"first" : "first",
"last" : "last",
"phone" : "555 555 5555",
"userRole" : "su",
"zones" : [
{
"zone_id" : ObjectId("51ee899ec15d5aaff39d3357")
}
]
}
हालांकि मुझे खींचने के लिए ऑब्जेक्ट आईडी को थोड़ा बदलना पड़ा, क्योंकि यह मूल रूप से दस्तावेज़ के आपके सरल और पूर्ण संस्करणों के बीच एक अलग स्ट्रिंग का उपयोग कर रहा था।