0

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

我究竟做错了什么?

4

1 回答 1

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

于 2013-08-18T16:54:04.550 回答