首页 > 解决方案 > 删除与某个元素匹配的数组元素

问题描述

我有一个 mongodb 集合。

{用户ID:1,项目:[{_id:1},{_id:2},{_id:3}]}

我想删除具有特定 ID 的数组项。任何人都可以解释上述查询有什么问题。

db.col.findOneAndUpdate({user_id:1},{$pull:{items:{$elemMatch:{_id:2}}}})

标签: mongodb

解决方案


$pull将表达式作为参数,因此您不必使用$elemMatch(在这种情况下不起作用)。尝试:

db.col.update({user_id:1},{$pull:{items:{_id:2}}})

因此,这种情况下的表达式意味着 MongoDB 将删除已_id设置为的文档,2但该文档也可以具有其他属性。


推荐阅读