2015-11-23 18 views
2

如何刪除數組的一個元素集合在這樣的:如何在MongoDB中刪除數組元素

{ 
    "_id" : "Y9BBFa4c4vMiAkjbi", 
    "metadata" : { 
     "tags" : [ 
      "Anything", 
      "Something", 
      "More" 
     ] 
    } 
} 

在這個例子中,我只是想刪除「東西」 - 如果存在。

var tag = 'Something'; 
if (Collection.find({ 'metadata.tags': tag }).count()) { 
    Collection.update(
     { _id: id }, 
     { $pull: { 'metadata.tags': tag } } 
    ); 
} 

回答

1

只要確保你的$pull目標,你要刪除的數組元素:

Collection.update({ _id: id }, 
    { $pull: { 'metadata.tags': { $eq: "Something" }}} 
);