对列表进行排序并在mongodb中插入新列

时间:2013-08-24 00:18:18

标签: node.js mongodb

我需要对居住在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

1 个答案:

答案 0 :(得分:0)

MongoDB Map-Reduce

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
         }
    }
);

至于插入新的月份 - 最大值,这取决于您希望如何存储它?你是如何查询这些数据的?

可以将结果输出到新集合中,或者以编程方式使用它来更新其他集合。这取决于您希望数据的形成方式。实际上,您的数据看起来非常平坦。