通过将列表objectids传递给findByIdAndUpdate来更新多个文档

时间:2017-08-07 21:39:29

标签: mongodb mongoose

我正在尝试使用mongoose的findByIdAndUpdate方法传入对象ID列表并立即更新它们。但是,我得到一个“错误:不能使用带ObjectId的$ set。”错误,我似乎无法与我的代码相关联。

这是我的代码。

return ComponentModel.findByIdAndUpdate({
    _id: {
        $in: input.subjectIds
    },
    $set: { location: input.newLocation }
}).then(res => res);

1 个答案:

答案 0 :(得分:3)

findByIdAndUpdate适用于一个文档。对于多个文档,您可以使用update并将multi标记为true。

return ComponentModel.update(
 {_id: {$in: input.subjectIds}},
 {$set: {location: input.newLocation}},
 {"multi": true}
).then(res => res);