2014-11-13 3 views
0

В моей коллекции оплаты MongoDB У меня есть документы структурирована следующим образом:MongoDB - агрегация

{ 
    "created_at": created_at, 
    "amount": amount 
    ... 
} 

мне нужно сгруппировать записи по месяцам, сумма составляет в каждой группе и для каждого роста находят группы, что-то вроде этого:

[{ 
    "created_at": "2014-11-13", 
    "amount": 10  
}, 
{ 
    "created_at": "2014-11-3", 
    "amount": 20  
}, 
{ 
    "created_at": "2014-12-13", 
    "amount": 30  
}, 
{ 
    "created_at": "2014-12-15", 
    "amount": 15  
}] 

И результат:

[{ 
"_id": {"month": 11}, 
"amount": 30, 
"growth": null 
}, 
{ 
"_id": {"month": 12}, 
"amount": 45, 
"growth": 1.5  
}] 

можно ли сделать с агрегационным трубопроводом или картой повторно дуче или любой другой техники?

+2

Добро пожаловать на SO, Артем, он работает лучше, если вы делаете некоторые исследования первого и включают в себя то, что вы получили до сих пор в вашем вопросе. Это больше напоминает порядок работы, на который нахмурились. – JohnnyHK

+0

Какие критерии установлены для роста? – Yogesh

+0

@ yogesh growth [i] = количество [i]/количество [i-1] –

ответ

0

Должно быть что-то вроде этого:

{ 
    '$group' : { 
     '_id' : { 
      'month' : { '$month' : '$created_at'} 
     }, 
     'amount' : { '$sum' : '$amount'} 
    } 
} 
Смежные вопросы