2013-08-18 168 views
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消息,但變化沒有發生。

我在做什麼錯?

回答

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的對象,而不是一個字符串。它成功的原因是因爲沒有錯誤,它只是沒有找到任何具有該String的_id的對象。