更新文档

时间:2013-08-18 16:50:15

标签: node.js mongodb

我正在尝试更新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消息,但未发生更改。

我做错了什么?

1 个答案:

答案 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的对象。