如何删除嵌套集合,例如下面,我想从Pic中删除id 50d3dbce1292dd2e98af1dd2?
数据:
{
"_id": "50d3dbce1292dd2e98af1dd1",
"Name": "Bubba",
"Address": "1111",
"Pic" : [{"_id": "50d3dbce1292dd2e98af1dd2", "Name": "test1.jpg", "Size":"1000"}, {"_id": "50d3dbce1292dd2e98af1dd3",. "Name": "test2.jpg", "Size":"2000"}],
"LastModified": {
"$date": "2012-12-21T03:47:26.535Z"
}
}
解决了$ pull:
db.coll.update({},{$ pull:{'things':{'myval':1}}});
答案 0 :(得分:1)
db.collection.update(criteria,objNew,upsert,multi)
db.collection.update( { "_id": "50d3dbce1292dd2e98af1dd1" }, { $unset : { "Pic._id" : 1 } }, false, true);
如果要更新多个记录,请记住将multi选项用作true。
<强>更新强>
为了使其有效,我们应该以这种方式改变标准
{ "Pic._id": "50d3dbce1292dd2e98af1dd2" }
或者使用$pull
作为Kev说:
db.coll.update({}, {$pull: {'things': {'myval': 1}}});