Javascript 将[object]从转换为值
使用下面的代码,我想在seq字段中找到_id=user的行的值: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);
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
可能应该专门设置为该值,而不是整个结果对象。