【发布时间】:2020-02-07 18:23:35
【问题描述】:
我目前在我的后端有一个可以更新我的数组的 api。问题是,它甚至不引用 _id 并且只更新我数组中的第一项。每当我编辑其他对象的值然后单击更新时,它只会更新我集合中的第一个对象。
这是代码:
router.route('carousel/update/:id').put(function(req, res) {
var data = req.body;
const myquery = {"_id": ObjectId };
db.collection("home").updateOne(myquery, {
$set: {
"img": data.img,
"header": data.header,
"subheader": data.subheader
}
}, (err, results) => {
res.status(200).json({status: "ok"})}
})
这段代码允许我更新我的集合中的第一个对象。我如何配置它以允许使用_id更新特定对象?我错过了什么?
编辑
查看其他堆栈溢出帖子后,我是这样做的:
const myquery = {"_id" : ObjectId(req.params.id) };
但现在我收到一条错误消息,提示“传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符串。此外,当我控制台日志时,URL 的 ':id' 部分未定义。
【问题讨论】: