0

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

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

我想删除 follower[] 集合中的最后两项。

4

1 回答 1

3

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

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

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

但是,如果您需要从列表中删除特定的 id,无论它们在哪里,您都可以使用$pull,或者$pullAll如果您想一次删除多个。

于 2012-10-28T07:15:58.913 回答