[英]Mongodb/Mongoose - Aggregation to group all matching docs in same collection in an array
[英]mongoDB mongoose aggregation group array returns [object] Error
实际上,我想基于用户名进行汇总并包含地点信息。 mongo shell正常工作
db.demo_datas.aggregate([{"$group":{"_id":"$user_screenname", "place":{"$push":{"place":"$user_geo"}}}}]);
{
"_id" : "orena001",
"place" : [
{
"place" : [
11.158983,
78.163335
]
},
{
"place" : [
11.137964,
78.16126
]
}
]
}
现在,当我使用node.js猫鼬时,place数组未返回值。 猫鼬的node.js查询是
demodatas.aggregate([{$group:{"_id":"$user_screenname", "place":{"$push":{"place":"$user_geo"}}}}], function(err, data){
console.log(data);
});
但它会返回这样的结果。
{ _id: 'orena001',
place:
[ [Object],
[Object]
]
}
谁能帮我解决这个问题。 谢谢前进。
考虑以下:
> console.log({ foo : { bar : [ { xxx : 1 } ] } })
{ foo: { bar: [ [Object] ] } }
这显示的输出与您看到的类似。 出现意外输出的原因是常规console.log()
将仅显示特定深度的嵌套对象,此后它将缩写输出(在这种情况下,它将显示[Object]
而不是实际对象) 。 但是,这并不意味着该对象无效,而是在打印时以这种较短的格式显示。
了解整个对象的一种解决方案是先将其转换为JSON:
> console.log('%j', { foo : { bar : [ { xxx : 1 } ] } })
{"foo":{"bar":[{"xxx":1}]}}
或者,在您的情况下:
console.log('%j', data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.