0

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

4

1 回答 1

1

db.collection.update(标准,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}}});
于 2013-01-20T09:40:34.680 回答