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 に答える