node.js - 如何通过 id 查找并删除数组中的 Mongoose 子文档?

标签 node.js mongodb mongoose

我有以下 Mongoose 模式:

{
    name: String,
    subArray: [
        {
            subName: String,
            subNumber: Number
        }
    ]
}

我已将对象添加到 subArray,这些对象会自动分配一个 "_id"。在 Node.js 中,如何在 subArray 中通过 "_id" 查找对象并将其删除?

最佳答案

你可以看到 Mongoose findOneAndUpdate$pull 运算符一起使用。所以像下面这样的东西可以工作(未经测试):

Model.findOneAndUpdate( {'subArray._id' : '55a19992474e7ded6b4ae2b0'} ,
  {
    $pull: { subArray: { _id: '55a19992474e7ded6b4ae2b0' }}
  }
  {new: true},
  function(err, doc){
     console.log(err,doc)
})

关于node.js - 如何通过 id 查找并删除数组中的 Mongoose 子文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31394270/

相关文章:

javascript - Node.js 中的本地文件的异步文件 IO 方法如何工作?

MongoDB:如何在不指定数组索引的情况下查找任何字段的子文档中包含字符串的文档?

mongodb - 聚合查询以获取不包含空白 (""的数据或空值无法正常工作

node.js - Visual Studio 代码调试 Node.JS NOENT : no such file or directory when debugging with MongoDB

node.js - Mongoose 查询改变对象顺序

javascript - gulp-watch 无休止地编译而不对文件进行更改

node.js - 我应该将用户信息放入 JWT token 中,还是只放入用户 ID,然后从数据库中选择信息?

Node.js 和 Express : No answer if server is running

node.js - Mongoose 中的 "__v"字段是什么

node.js - Mongoose 删除不起作用 [findByIdAndRemove]