使用下面的代码我想找到_q = user的行seq字段中的值:
DbModels.prototype.autoIncrement = function(_collection, callback){
this.getCollection(_collection, function(error, seq_collection) {
if( error ) callback(error)
else {
console.log(seq_collection);
seq_collection.find({_id: 'Users'}, {'seq': 1}, function(error, result) {
if( error ) callback(error)
else {callback(null, result)}
});
}
});
}
DbModels.prototype.addUser = function(Users, callback) {
this.autoIncrement("seq", function(error, result){
if(error) callback(error);
else console.log("RESULT: "+result);ID=result;
});
代码工作正常,但结果是“RESULT:[object Object]”,我不知道如何将[object Object]转换为nodejs中的值。
当我在mongo shell中运行查询时,输出为:{“_ id”:“Users”,“seq”:51}
有人有什么建议吗?
答案 0 :(得分:2)
它是一个值(特别是对象的引用)。当你调用toString
时(隐式地因为连接),它看起来就像是这样。您可能希望查看文档,并查看result
的相关字段和方法。
从these docs开始,您可能希望以稍微不同的方式处理结果:
seq_collection.find({_id: 'Users'}, {'seq': 1}).toArray(function(err, results){
console.log(results); // output all records
});
答案 1 :(得分:1)
尝试:
console.log("RESULT: "+JSON.stringify(result));
它应该打印结果的内容。
在回复评论时(评论中缺少格式):
在节点控制台中尝试:
> o = {a:13}
{ a: 13 }
> o['c'] = o
{ a: 13, c: [Circular] }
> JSON.stringify(o)
TypeError: Converting circular structure to JSON
at Object.stringify (native)
at repl:1:7
at REPLServer.eval (repl.js:80:21)
at Interface.<anonymous> (repl.js:182:12)
at Interface.emit (events.js:67:17)
at Interface._onLine (readline.js:162:10)
at Interface._line (readline.js:426:8)
at Interface._ttyWrite (readline.js:603:14)
at ReadStream.<anonymous> (readline.js:82:12)
at ReadStream.emit (events.js:88:20)
答案 2 :(得分:1)
我想,这就是答案: How do you log content of a JSON object in Node.js?
最简单的方法是:
this.autoIncrement("seq", function(error, result){
if(error) callback(error);
else console.log("RESULT: %j",result);ID=JSON.stringify(result);
});