Mongodb - 我需要从数组中删除多个对象
Posted
技术标签:
【中文标题】Mongodb - 我需要从数组中删除多个对象【英文标题】:Mongodb - I need to delete multiple objects from array 【发布时间】:2021-05-29 05:57:00 【问题描述】:我有这个数据集:
"_id" : ObjectId("6036953aec9d2a3612452bae"), "name" : "Chris",
"friends" : [
"name" : "xyz", "age" : 23 , // delete
"name" : "xyz", "age" : 34 , // delete
"name" : "abc", "age" : 18 ,
"name" : "pqr", "age" : 27 // delete
],
我想为用户删除提到的对象:
这是我正在做的查询:
db.users.updateOne(
name: "Chris" ,
$pull: 'friends.$[el]' ,
arrayFilters: [ 'el.name': $in: [ 'xyz', 'abc' ] ]
)
错误:
uncaught exception: SyntaxError: missing : after property id :
提前致谢!
【问题讨论】:
【参考方案1】:您可以在从文档数组中删除项目部分查看documentation,这是您想要的示例。
此查询有效:
db.users.updateOne(
"name": "Chris",
"$pull":
"friends":
"name":
"$in": ["xyz","pqr"]
)
例如here
此查询更新找到name
为Chris
的第一个文档,并将friends.name
所在的($pull
) 对象删除到$in
数组中。
【讨论】:
以上是关于Mongodb - 我需要从数组中删除多个对象的主要内容,如果未能解决你的问题,请参考以下文章