我需要对居住在mongodb的天气数据中的状态进行排序并找出每个州的最高温度。
当我找出该状态的最高温度时,如何在Javascript中迭代每个记录并插入新列'month_highest'?
Day Time State Airport Temperature Humidity WindSpeed
1 54 Vermont BTV 39 57 6
1 154 Vermont BTV 39 57 4
1 254 Vermont BTV 39 57 5
1 354 Vermont BTV 38 70 5
1 454 Vermont BTV 34 92 11
16 53佛罗里达州ORL 46 71 9 16 153佛罗里达州ORL 47 71 8 16 253佛罗里达州ORL 46 73 8 16 353佛罗里达州ORL 47 74 8 16 453 Florida ORL 46 79 7 16 553佛罗里达州ORL 46 79 5 16 653佛罗里达州ORL 46 83 4
答案 0 :(得分:0)
db.temps.mapReduce(
/* map */
function() {
emit( this.State, this.Temperature);
},
/* reduce */
function key(key, values) {
var ret = 0;
for (var i=0; i<values.length, i++) {
if (values[i] > ret) ret = values[i];
}
return ret
},
/* params */
{
query: {
DateTime: {
$gte: new Date('2013-01-01')
,$lt: new Date('2013-02-01')
}
}
,sort: {
State:1
}
}
);
至于插入新的月份 - 最大值,这取决于您希望如何存储它?你是如何查询这些数据的?
您可以将结果输出到新集合中,或者以编程方式使用它来更新其他集合。这取决于您希望数据的形成方式。实际上,您的数据看起来非常平坦。