Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   итерация по документам монго (https://javascript.ru/forum/node-js-io-js/57679-iteraciya-po-dokumentam-mongo.html)

DennisMatveyev 14.08.2015 14:11

итерация по документам монго
 
всем, добрый день!
Помогите, пожалуйста, с таким вопросом -
Есть база, каждый документ которой выглядит так:
{
    "_id" : ObjectId("520bea012ab230549e749cff"),
    "Day" : 1,
    "Time" : 54,
    "State" : "Vermont",
    "Airport" : "BTV",
    "Temperature" : 39,
    "Humidity" : 57,
    "Wind Speed" : 6,
    "Wind Direction" : 170,
    "Station Pressure" : 29.6,
    "Sea Level Pressure" : 150
}


Для каждого штата "State" нужно найти самую высокую "Temperature" за месяц (т.е. документов со штатом Вермонт будет например 31... для каждого дня в месяце) и в этот документ (с самой высокой температурой) добавить запись - 'month_high': true

var MongoClient = require('mongodb').MongoClient;
 
MongoClient.connect('mongodb://localhost:27017/weather', function(err, db) {
    if(err) throw err;
 
    var data = db.collection('data');
    var cursor = data.find({});
    cursor.sort([ ["State", 1], ["Temperature", -1] ]);
    
    var operator = { '$set':  { 'month_high': true }};
    
    cursor.forEach(function(err, doc) {
        if(err) throw err;
 
        TODO???????????????????????
 
    });
    
    return db.close();
});


Т.е. я сделал:
- отсортировал по штатам
- отсортировал по температуре (самая высокая получается первой среди документов данного штата)

и теперь пытаюсь в TODO сделать следующее - для каждого штата найти первую запись и вставить operator...

HELP, ибо не получается ничего :(


Часовой пояс GMT +3, время: 12:30.