我有以下代码:
connection((db) => {
db.collection('orders')
.updateOne(
{ "_id": req.body._id}, // Filter
{"name": req.body.name} // Update
)
.then((obj) => {
console.log('Updated - ' + obj);
res.redirect('orders')
})
.catch((err) => {
console.log('Error: ' + err);
})
})
我想更改订单中的名称,但它不会更新。控制台中的结果是
Updated - {"n":0,"nModified":0,"ok":1}
我试图阅读文档,但它太可怕了
编辑: {$set: {"name": req.body.name}},
也没有用
编辑 2:传递的 ID 与数据库中的 _id 匹配。在数据库中它被称为“ObjectId(’5a42ja …‘)”时我正在查询纯文本 ID 可能是一个问题
原文由 Simeon Nakov 发布,翻译遵循 CC BY-SA 4.0 许可协议
也许您应该像这样在更新查询中使用“$set”:
文档 中的更多信息
编辑
如果它不起作用,这可能是因为与您的过滤器不匹配。
也许你应该尝试像这样匹配一个 ObjectId :
希望能帮助到你。