如何删除不知道其父ID的猫鼬数组项?

时间:2020-09-07 15:00:18

标签: mongodb mongoose

这是我的数据

{
    _id: 'unknown',
    playHistory: [
        {
            _playHistoryId: ObjectId('5f564893f6b66f3d94dbf19e')
        },
        {
            _playHistoryId: ObjectId('5f564893f6b66f3d94dbf19f')
        }
    ]
}

如果_playerHistoryId匹配,我试图删除playHistory数组中的一项。 例子

this.collection.updateOne(
      {},
      {
        $pull: { playHistory: { _playHistoryId: new ObjectId('5f564893f6b66f3d94dbf19e') } }
      }
)

它不会删除。 有什么建议吗? 谢谢

1 个答案:

答案 0 :(得分:0)

  • 使用updateOne()更新数组字段时,需要定义查询条件,
  • 请勿在对象ID之前使用new关键字,
this.collection.updateOne(
      { "playHistory._playHistoryId": ObjectId('5f564893f6b66f3d94dbf19e') },
      {
          $pull: { playHistory: { _playHistoryId: ObjectId('5f564893f6b66f3d94dbf19e') } }
      }
)