2012-10-28 41 views
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 
    ], 

我想刪除追隨者[]集合中的最後兩項。

回答

3

你可以試試這個(如果你是肯定他們是最後兩個):

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

$pop將刪除數組的最後一個元素。

但是,如果您需要從列表中刪除特定的ID,而不管它們在哪裏,則可以使用$pull$pullAll,如果要一次刪除多個ID。

相關問題