首页 > 解决方案 > 如何从猫鼬的对象数组中删除一个对象?

问题描述

我有这些数据,我想根据它的 id/title 删除给定的电影

    "_id": "604184234a2f37156cec63ca",
    "name": "Jacob Tremblay",
    "description": "Jacob Tremblay is a Canadian actor. He made his film debut as Blue in the live action animated film",
    "born": "06051993",
    "bornCountry": "Usa",
    "movies": [
        {
            "movie": {
                "_id": "604184384a2f37156cec63cb",
                "title": "Luca",
                "__v": 0,
                "id": "604184384a2f37156cec63cb"
            },
            "role": "Luca"
        }
    ],
    "__v": 0
}

在文档中它说我可以使用 $pull 来实现这一点,但我很难弄清楚它是如何完成的。我的控制器方法

const removeMovieForActor = async (req, res, next) => {
  try {
    await Actor.updateOne(
      { _id: req.params.id },
      { $pull: { movies: { title: req.body.movie }}},
      { multi: true }
    )
    res.status(200).json({ success: true, data: 'ok' })

  } catch (error) {
    res.status(400).json({ success: false, error: error })
  }
}

标签: node.jsmongodbmongoose

解决方案


推荐阅读