如何从 Mongoose 中的数组中删除嵌套对象

ill*_*crx 5 javascript mongoose node.js

这是我的第一个 Web 应用程序,我需要删除嵌套数组项。您将如何使用此模式删除 Mongoose 中的对象:

User: {
    event: [{_id:12345, title: "this"},{_id:12346, title:"that"}]
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能id:12346在 mongoose/Mongo 中删除?

Sup*_*eep 9

使用$pull从一组项目中删除项目,如下所示:

db.User.update(
  { },
  { $pull: { event: { _id: 12346 } } }
)
Run Code Online (Sandbox Code Playgroud)

$pull 运算符从现有数组中删除一个或多个与指定条件匹配的值的所有实例。

第一个参数中的空对象是query查找文件。以上方法与排除的项目_id: 12345event在集合中的所有文档数组。如果数组中有多个项目与条件匹配,请将multi选项设置为 true,如下所示:

db.User.update(
  { },
  { $pull: { event: { _id: 12346 } } },
  { multi: true}
)
Run Code Online (Sandbox Code Playgroud)

  • 四年后,这仍然是正确的答案。谢谢@Supradeep! (2认同)