如何删除集合中的子文档?

时间:2012-10-28 07:09:42

标签: mongodb

蒙戈> db.users.findOne({username:'foo'});

   {
    "__v" : 266,
    "_id" : ObjectId("50752b5f00a0f5ab64000002"),
    "followers" : [
            ObjectId("505e2f1de888c7d701000001"),
            ObjectId("506146fe72c0280723000001"),
            ObjectId("50752b5f00a0f5ab64000002"), //remove this
            ObjectId("50752b5f00a0f5ab64000002") //remove this
    ],

我想删除关注者[]集合中的最后两项。

1 个答案:

答案 0 :(得分:3)

你可以尝试这个(如果你确定他们是最后两个):

db.users.update({"_id" : ObjectId("50752b5f00a0f5ab64000002")}, {$pop: {followers:1}});
db.users.update({"_id" : ObjectId("50752b5f00a0f5ab64000002")}, {$pop: {followers:1}});

$pop将删除数组的最后一个元素。

但是,如果您需要从列表中删除特定ID,无论它们在何处,都可以使用$pull$pullAll,如果您想一次删除几个。