如何从嵌套集合中删除数据?

时间:2013-01-20 08:14:45

标签: mongodb mongodb-.net-driver

如何删除嵌套集合,例如下面,我想从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}}});

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}}});