Предположим, у меня есть такая коллекция:
[
{
"_id": ObjectId("5e3dd3d57f8bc30a7513e843"),
"deleted": true,
"date": "01/01/2020"
"total": 3
},
{
"_id": ObjectId("5e3dd3e97f8bc30a7513e99b"),
"date": "02/01/2020",
"deleted": false,
"total": 11
},
{
"_id": ObjectId("5e3dd3e97f8bc30a75137635"),
"date": "15/02/2020",
"deleted": false,
"total": 5
},
{
"_id": ObjectId("5e3dd3e97f8bc30a75131725"),
"date": "18/02/2020",
"deleted": false,
"total": 7
},
{
"_id": ObjectId("5e3dd3e97f8bc30a75131725"),
"date": "03/03/2020",
"deleted": false,
"total": 9
}
]
Мне нужно объединить эти ордера по диапазону, чтобы получить что-то вроде этого:
{
"january": [order1, order2],
"february": [order3, order4],
"march": [order5]
}
конечно, нет нужны слова «январь, февраль» и др. c, что-то, что позволяет мне группировать по диапазонам данных. Примерно так:
db.sales.aggregate( [
{ $group: { date: { "$gte": new Date(req.query.minDate), "$lte": new Date(req.query.maxDate) }, mergedOrders: { ?? } } }
])
, который не находится рядом с действительным групповым вызовом группы.
Итак, как мне группировать заказы по диапазону данных ? (Мне нужно получить для каждого диапазона данных весь массив заказов в этом диапазоне данных, как они есть, без исключения полей)