从数组数组中提取元素 MongoDb

Pull element from an array of arrays MongoDb

我正在努力寻找从 Mongo.

中的数组数组中删除元素(带有 _id)的查询格式

在查看文档时,我找不到任何与我所拥有的相似的内容 https://www.mongodb.com/docs/manual/reference/operator/update/pull/#up._S_pull

我知道:MySchema中文档的_id和innerArray中数组元素的_id。

我不知道 outerArray _id

谁能帮我指出哪里错了谢谢!

这是一个数据示例(假设 ObjectId 中的 _id)

{
  outerArray:[
           {
             _id: 1
             innerArray: [{_id: 23, name: '123'}, {_id: 13, name: 'asdac'} ] 
           },
           {
             _id: 2,
             innerArray: [{_id: 16,name:'asf' }, {_id: 18,name:'asf' } ] 
           },
           {
            _id: 3,
            innerArray: [{_id: 136,name:'asf' }, {_id: 128,name:'asf' } ] 
           }
          ]
}

innerIds 是 mongoose.Types.ObjectId

的数组
return MySchema.updateOne(
    {
      _id: documentId,
    },
    { $pull: { outerArray: { innerArray: { _id: { $in: innerIds } } } } },
  )
    .session(session)
    .exec()
db.collection.update({},
{
  $pull: {
    "outerArray.$[].innerArray": {//$[] does the trick
      _id: {
        $in: [
          16
        ]
      }
    }
  }
})

playground