Mongodb + nodejs mongoskin更新无法正常工作

时间:2014-05-17 16:19:59

标签: node.js mongodb mongoskin

我在通过Mongoskin通过Node + Express和Mongodb更新文档时遇到问题。我通过mongo命令行使用了以下命令,它按预期工作:

db.userlist.update({_id: ObjectId('5377821219f21e974150bacf')}, {$set: {username: "Test"}})

然而,在Node中执行类似的行并不起作用,并且似乎通过浏览器返回500错误。

db.collection('userlist').update({_id: ObjectId('5377821219f21e974150bacf')}, {$set: {username: "Test"}});

我尝试过多次传递选项:true和false,还尝试添加回调,但每次都没有。

我错过了什么? 附:我非常感谢node和mongodb,感谢提前。

1 个答案:

答案 0 :(得分:5)

你的语法是关闭的 - mongo shell的语法与通过mongoskin调用node.js中的函数不同。我已根据本教程更新了您认为可行的代码:http://www.hacksparrow.com/mongoskin-tutorial-with-examples.html

var mongo = require('mongoskin');
require('mongodb');
var db = mongo.db("mongodb://localhost:27017/mongoskin", {native_parser:true});
db.collection('userlist').update({_id: mongo.helper.toObjectID("5377821219f21e974150bacf")}, {'$set':{username:"Test"}}, function(err, result) {
            if (err) throw err;
            if (result) console.log('Updated!');
        });

注意mongo.helper.toObjectID()。来自文档https://github.com/kissjs/node-mongoskin

collection.update({_id: toObjectID(id)}, ...)