MongoDB相反的$addToSet

74

我知道MongoDB的$addToSet方法,但我在文档中找不到任何“remove”等效方法。

如何最好地实现这一点? 尝试实现类似以下内容:

obj = {
  name: 'object1',
  tags: ['fus', 'ro', 'dah']
}

db.collection.update({
  name: 'object1'
}, {
  $removeFromSet: {
    tags: 'dah'
  }
});
1个回答

112

我认为你正在寻找$pull,它可以“从现有数组中删除所有值的实例”。

db.collection.update(
  {name: 'object1'}, 
  {$pull: { tags: 'dah'}});

1
太好了。希望文档中有对此的参考。 - JVG
5
所有数组操作符都可以在此找到:http://docs.mongodb.org/manual/reference/operator/update-array/#update-operators。 - Ross
如何使用单个命令从数组中删除多个元素? - Surender Thakran
@SurenderThakran,你也可以像上面那样使用$pull,例如:{ $pull: { tags: { $in: ["dah", "dex"] } } } - Octo Poulos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接