【发布时间】:2020-03-29 07:10:12
【问题描述】:
我想通过父 ID 和子文档对象 ID 更新具有 findByIdAndUpdate 的子文档数组的一个对象。执行此代码时,出现此错误:
The positional operator did not find the match needed from the query.
当我使用带有过滤器参数的 updateOne 时,它可以工作。但我想让更新后的文档以 json 的形式返回,供 rest api 使用。
有没有办法获取更新的文档?
我的代码:
Subject.findByIdAndUpdate(
{ _id: req.params.subjectId, "bookmarks._id": req.params.bookmarkId },
{
$set: {
"bookmarks.$.uri": req.body.uri
}
},
{ new: true }
)
架构:
{
"_id": "5e7fbfc05ff6be1446b51af7",
"user_id": "5e7e68c3fd5e9404ce6a14a3",
"title": "Hello World",
"date": "2020-03-28T21:21:04.434Z",
"bookmarks": [
{
"date": "2020-03-28T21:21:20.806Z",
"_id": "5e7fbfd05ff6be1446b51afa",
"uri": "lorem ipsum"
},
{
"date": "2020-03-28T21:21:21.433Z",
"_id": "5e7fbfd15ff6be1446b51afb",
"uri": "lorem ipsum"
}
]
}
【问题讨论】:
标签: javascript mongodb mongoose