Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将[object]从转换为值_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 将[object]从转换为值

Javascript 将[object]从转换为值,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,使用下面的代码,我想在seq字段中找到_id=user的行的值: DbModels.prototype.autoIncrement = function(_collection, callback){ this.getCollection(_collection, function(error, seq_collection) { if( error ) callback(error) else { console.log(seq_collection);

使用下面的代码,我想在seq字段中找到_id=user的行的值:

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]转换为nodejs中的值

当我在mongo shell中运行查询时,输出是:{“\u id”:“Users”,“seq”:51}

有人有什么建议吗?

这是一个值(特别是对对象的引用)。只有在调用
toString
时才会出现这种情况(这是由于连接的缘故)。您可能希望查看文档,了解
结果的相关字段和方法

从中,您可能希望以稍微不同的方式处理结果:

seq_collection.find({_id: 'Users'}, {'seq': 1}).toArray(function(err, results){
    console.log(results); // output all records
});
它是一个值(特别是对对象的引用)。只有在调用
toString
时才会出现这种情况(这是由于连接的缘故)。您可能希望查看文档,了解
结果的相关字段和方法

从中,您可能希望以稍微不同的方式处理结果:

seq_collection.find({_id: 'Users'}, {'seq': 1}).toArray(function(err, results){
    console.log(results); // output all records
});
尝试:

它应该打印结果的内容

回复注释时(注释中缺少格式):

在节点控制台中尝试以下操作:

> 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)
>o={a:13}
{a:13}
>o['c']=o
{a:13,c:[循环]}
>JSON.stringify(o)
TypeError:将循环结构转换为JSON
at Object.stringify(本机)
回复:1:7
在REPLServer.eval(repl.js:80:21)
在接口处。(回复js:182:12)
在Interface.emit(events.js:67:17)
在接口处在线(readline.js:162:10)
在接口处。\u行(readline.js:426:8)
在接口处写入(readline.js:603:14)
在ReadStream。(readline.js:82:12)
在ReadStream.emit(events.js:88:20)
试试:

它应该打印结果的内容

回复注释时(注释中缺少格式):

在节点控制台中尝试以下操作:

> 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)
>o={a:13}
{a:13}
>o['c']=o
{a:13,c:[循环]}
>JSON.stringify(o)
TypeError:将循环结构转换为JSON
at Object.stringify(本机)
回复:1:7
在REPLServer.eval(repl.js:80:21)
在接口处。(回复js:182:12)
在Interface.emit(events.js:67:17)
在接口处在线(readline.js:162:10)
在接口处。\u行(readline.js:426:8)
在接口处写入(readline.js:603:14)
在ReadStream。(readline.js:82:12)
在ReadStream.emit(events.js:88:20)

我想,这就是答案:

最简单的方法是:

this.autoIncrement("seq", function(error, result){
    if(error) callback(error);
              else console.log("RESULT: %j",result);ID=JSON.stringify(result);
});

我想,这就是答案:

最简单的方法是:

this.autoIncrement("seq", function(error, result){
    if(error) callback(error);
              else console.log("RESULT: %j",result);ID=JSON.stringify(result);
});


使用'else console.log(result.toString());ID=结果;'还提供了[object object]您正在执行的相同操作,使用'else console.log(result.toString())调用
toString
;ID=结果;'还提供了您正在执行的相同操作[object object],调用
toString
。您使用的是哪个monogodb绑定?您可以链接到文档的主页吗?MongoDB:对于我正在使用的NodeJ:尝试这样记录:
console.log(“结果:”);控制台日志(结果);ID=结果
并查看是否模糊地给出了您想要的信息。
console.log('RESULT:',RESULT)您使用的是哪种monogodb绑定?您可以链接到文档的主页吗?MongoDB:对于我正在使用的NodeJ:尝试这样记录:
console.log(“结果:”);控制台日志(结果);ID=结果
并查看是否模糊地给出了您想要的信息。
console.log('RESULT:',RESULT)给出以下结果:TypeError:在c:\Program Files\nodejs\DbModels.js:192:50在c:\Program Files\nodejs\DbModels.js:182:23在Collection.find(c:\Program Files\nodejs\node\U modules\mongodb\lib\mongodb\Collection.js:698:5)将循环结构转换为JSON在Object.stringify(本机)在c:\Program Files\nodejs\DbModels.js:180:24在c:\Program Files\nodejs\DbModels.js:63:10在[object object].collection(c:\Program Files\nodejs\node\U modules\mongodb\lib\mongodb\db.js:320:44在[object].getCollection(c:\Program Files\nodejs\DbModels.js…看起来您的数据中有一个循环引用。我已经更新了答案-以获取格式。我很确定OP没有弄清楚这意味着什么。@torben,
results
显然不是纯数据。它有自引用,也可能有方法。因此它不适合任何一个
stringify
toString
。也许您可以尝试在“mongo”shell中进行查找,结果如下:TypeError:在c:\Program Files\nodejs\DbModels.js中将循环结构转换为JSON在Object.stringify(本机)中c:\Program Files\nodejs\DbModels.js:192:50在c:\Program Files\nodejs\DbModels.js:182:23在Collection.find中(c:\Program Files\nodejs\nodejs\node\u modules\mongodb\lib\mongodb\collection.js:698:5)在c:\Program Files\nodejs\DbModels.js:180:24在c:\Program Files\nodejs\DbModels.js:63:10在[object object object object object](c:\Program Files\nodejs\DbModels.js…看起来您的数据中有一个循环引用。我已经更新了答案-以获取格式。我很确定OP没有弄清楚这意味着什么。@torben,
results
显然不是纯数据。它有自引用,也可能有方法。因此它不适合任何一个
stringify
toString
。也许你可以尝试在“mongo”shell中进行查找?这似乎已经被建议过了。而且我认为OP需要
seq
字段,所以
ID
应该特别设置为该字段,而不是整个结果对象。似乎已经建议过了。而且我认为OP w在
seq
字段中,因此
ID
可能应该专门设置为该值,而不是整个结果对象。