我试图填充我在下面描述的数组结果,输出给我带有4个空元素的数组
"result" : [
{
"maxTemp" : 83,
"group_id" : "Florida"
},
{
"maxTemp" : 57,
"group_id" : "New Mexico"
},
{
"maxTemp" : 81,
"group_id" : "California"
},
{
"maxTemp" : 57,
"group_id" : "Vermont"
}
],
"ok" : 1
代码是
db.data.aggregate(
{
$group: {
_id: "$State"
, maxTemp: { $max :"$Temperature"}
}
},
{ $project: {
_id: 0,
group_id:"$_id",
maxTemp: "$maxTemp"
}}
).result.forEach(function(match) {
results.push(db.data.findOne(match));
});
但输出结果为
> results
[ null, null, null, null ]
我可以做些什么来填充结果?
答案 0 :(得分:0)
这接近有效所以我会给它一个“公平”的尝试。但是你的问题是你改变了字段名称,所以除非它们是相同的,否则你不会得到匹配。因此null
回复:
var results = [];
db.data.aggregate([
{ "$group": {
"_id": "$State",
"maxTemp": { "$max" :"$Temperature"}
}},
{ "$project": {
"_id": 0,
"State":"$_id",
"Temperature": "$maxTemp"
}}
).result.forEach(function(match) {
results.push(db.data.findOne(match));
});