繁体   English   中英

mongoDB猫鼬聚合组数组返回[对象]错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM