按名称从mongodb中的数组中删除一个元素

时间:2018-07-18 06:24:51

标签: arrays mongodb

我有一个这样的文件:

collection: {
   _id: ...,
   name: ...,
   elements: [ "aaa", "bbb", "aaa", "aaa", "ccc" ]
}

请注意,“ aaa”出现了几次,这是正确的。

我想删除“ aaa”元素中的一个(我不在乎哪个)。我已经尝试过$ pull的各种组合,但没有任何东西可以给我想要的结果(它可以拉其他数组元素,也可以拉所有的“ aaa”。

如果可能的话,我需要使操作原子化。

1 个答案:

答案 0 :(得分:0)

我想您想删除一个"aaa",使该数组类似于["bbb","aaa","aaa","ccc"]

我像下面那样做,可能有另一个更好的解决方案,如果有人的话请更新。

PS-我的集合中只有1个元素,您可以在update语句中添加条件。

db.getCollection('mydb').updateOne({arrElem:"aaa"},{$set:{"arrElem.$":null}})
db.getCollection('mydb').update({},{$pull:{arrElem:null}})