我正在尝试填充我在下面描述的数组结果,输出为我提供了包含 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 ]
我可以做什么来填充结果?
最佳答案
这接近有效,所以我会尝试一下“公平”。但这里的问题是您更改了字段名称,因此除非它们相同,否则您将不会获得匹配项。因此 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));
});
关于arrays - 尝试在 mongo shell 中填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899437/