我有以下代码:
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匹配。当我在数据库中查询纯文本ID时,它被称为" ObjectID(‘5A42JA …’)",这可能是一个问题。
答案
也许您应该在更新查询中使用" $ set":
{$set: {"name": req.body.name}}, // Update
更多信息文档
EDIT
如果它不起作用,这可能是因为与您的过滤器没有匹配。
也许您应该尝试与这样的objectid匹配:
var ObjectID = require('mongodb').ObjectID;
// In your request
{ "_id": ObjectID(req.body._id)}, // Filter
希望能帮助到你。