node.js - Mongodb + nodejs mongoskin 更新不工作

标签 node.js mongodb mongoskin

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

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

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

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

我试过传递选项 multi: true 和 false,也试过添加回调,但每次都不起作用。

我错过了什么? 附:我是 Node 和 mongodb 的新手,在此先感谢。

最佳答案

嗯,你的语法不对 - 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)}, ...)

关于node.js - Mongodb + nodejs mongoskin 更新不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713565/

相关文章:

javascript - 如何使用 Mongoskin 支持模式。

node.js - Mongodb 插入对象值

javascript - 升级后Node.js hapi错误: TypeError: Uncaught error: Object [object Object] has no method 'reply'

python - 当我将模型实例保存到 MongoDB 数据库中时,为什么 Python 会引发异常?

javascript - 如何在 MongoDB 中累积结果(使用 forEach?)?

javascript - Mongodb:如何返回查询列表中存在的数组元素

ruby-on-rails - 如何从ruby on Rails和nodejs中的csv文件读取第2张表

node.js - Web服务器只能远程访问3000端口

javascript - 从 API 创建 LinkedNotebook

java - 无法查找主机 Cluster0-XXXXX.mongodb.net 的 TXT 记录