如何通过ID找到并删除数组中的Mongoose子文档?

Jac*_*047 1 mongoose mongodb node.js

我有以下mongoose架构:

{
    name: String,
    subArray: [
        {
            subName: String,
            subNumber: Number
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我已经向subArray添加了对象,这些对象会自动分配给"_id".在Node.js中,如何"_id"在subArray中找到对象并将其删除?

has*_*sin 7

你可以findOneAndUpdate$pull操作员一起做猫鼬.所以像下面这样的东西可以工作(未经测试):

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