如何使用
我目前在后端有一个可以更新数组的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更新特定对象,我如何进行其他配置?我想念什么?
回答如下:您正在使用updateOne
,其应为updateMany
,如下所示
db.collection("home").updateMany(myquery, {
[updateOne
将更新第一个文档。
如何使用
我目前在后端有一个可以更新数组的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更新特定对象,我如何进行其他配置?我想念什么?
回答如下:您正在使用updateOne
,其应为updateMany
,如下所示
db.collection("home").updateMany(myquery, {
[updateOne
将更新第一个文档。