将[object Object]转换为value

时间:2012-02-27 21:41:03

标签: javascript node.js mongodb

使用下面的代码我想找到_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}

有人有什么建议吗?

3 个答案:

答案 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);
});