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

Node.JS: MongoDB update callback returns result with code of function

本文关键字:返回 结果 函数 代码 回调 JS MongoDB 更新 Node      更新时间:2023-09-26

我有一个更新MongoDB集合的脚本,并在其回调函数中记录错误和结果对象。除了result对象包含一大块代码之外,每一个都很好,我不知道如何处理这些代码。我使用的是MongoDB node.js驱动程序,版本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或本机mongodb驱动程序的问题。

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

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

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