javascript - Node.JS:MongoDB更新回调返回结果和函数代码

标签 javascript node.js mongodb

我有一个更新 MongoDB 集合的脚本,并在其回调函数中记录错误和结果对象。除了结果对象包含一大段代码之外,每个都工作正常,我不知道如何摆脱它。我正在使用native MongoDB node.js driver ,版本 2.0.46。

代码片段:

var find = {_id:id}, set = {$set:{dt:now}}; 
myCollection.update(find, set, function(err, result) {
    if(err) logger.error(JSON.stringify([find, set]), err.toString());
    else logger.verbose(result);
})

当更新没有发生错误时,我会收到这组日志条目。

2015-10-29T03:45:13.253Z - verbose: ok=1, nModified=1, n=1, _bsontype=Timestamp, low_=17, high_=1446090311, _bsontype=ObjectID, id=V.ßÂb$#\¾¾«, domain=null, 
close=function g() {
    this.removeListener(type, g);
    if (!fired) {
        fired = true;
        listener.apply(this, arguments);
    }

您在上面的日志条目中看到的功能只是一小部分。实际的“关闭函数”有数万行长,因此它很快就会填满我的日志文件。

我正在使用的记录器是 Winston .

我想知道我做错了什么导致这样的返回?任何建议表示赞赏。

最佳答案

这不是 mongodb 或 native mongodb 驱动程序问题。

MongoDB 结果包含有关数据库和行的其他详细信息,因此您可以在控制台中接收该方法。

您需要通过访问结果对象中可用的对象来记录所需的信息,即 result.ok、result.n、result.nModified 如下所示,

winston.info(result.ok, result.n, result.nModified);

关于javascript - Node.JS:MongoDB更新回调返回结果和函数代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33405742/

相关文章:

javascript - 自定义复选框不选中

javascript - 包含按钮错误 : I would a button every 8 elements of the list 的列表

javascript - 渲染表行而不绑定(bind)性能

node.js - Mongoose:如何通过 model.findOneAndUpdate() 检查文档是否被修改

mysql - Rails 应用程序中的 MongoDB 或 MySQL 或两者

javascript - 无法在 JavaScript 中正确地将行添加到表中

javascript - Sails.js Controller 等待异步服务方法

javascript - 读取 2 个字节作为整数

mongodb - 如何过滤子文档属性的聚合?

javascript - 从连续值中提取范围