我正在尝试更新mongodb数据库中的文档和失败的悲惨。
我正在使用node.js和此驱动程序:https://github.com/mongodb/node-mongodb-native
这是我的代码:
db.collection('test').update({ _id: '5210f6bc75c7c33408000001' }, {$set: { title: "new title"}, {w:1}, function(err) {
if (err) console.warn(err.message);
else console.log('successfully updated');
});
这是我的数据库:
> db.test.find()
{ "type" : "new", "title" : "my title", "desc" : [ "desc 1" ], "_id" : ObjectId("
5210f6bc75c7c33408000001") }
>
我创建了一条successfully updated
消息,但未发生更改。
我做错了什么?
答案 0 :(得分:0)
您需要将id属性设置为ObjectId
db.collection('test').update({ _id: ObjectId('5210f6bc75c7c33408000001') }, {$set: { title: "new title"}, {w:1}, function(err) {
if (err) console.warn(err.message);
else console.log('successfully updated');
});
_id字段实际上是ObjectId类型的对象,而不是字符串。它成功的原因是因为没有错误,它只是找不到任何带有该字符串的_id的对象。