node.js - 如何从猫鼬的对象数组中删除一个对象?
问题描述
我有这些数据,我想根据它的 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 })
}
}
解决方案
推荐阅读
- php - Laravel 调度器和 Cron
- javascript - 添加列并按类别分隔
- bash - Mac命令查找第一次出现的字符串并替换它?
- angular - 在没有 CLI 的情况下发布/构建 Angular 5 应用程序
- yii2 - 切换用户确认不起作用
- java - 无法从 ReadLine (bufferedReader) 存储值
- java - 使用 FusedLocationProviderClient 请求位置更新不起作用,永远不会调用回调
- sql-server - 从选定的日期范围获取平均小时周期
- java - 通过索引获取值。但功能有限(用户定义的功能)
- visual-studio-2017 - Nuget 包翻倍