我有一个更新 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/