У меня есть sql-фон и понимаю синтаксис для агрегирования данных в mongodb, но у меня возникают проблемы с «сглаживанием» вывода агрегации множественных ключей в MongoDB. Например, стандартный синтаксис выглядит следующим образом:mongodb множественная активация ключей
db.transactions.aggregate(
[
{ $group: { _id: {"category":"$category","postdate":"$postdate"} , "total": { $sum: "$total" } } }
]
);
Но это возвращает данные в следующем виде:
[{"_id":{"category":"Fees","postdate":"2013-01-04T05:00:00.000Z"},"total":24},
{"_id":{"category":"Fees","postdate":"2012-12-20T05:00:00.000Z"},"total":-0.02}]
То, что я хочу, это данные в формате, как в следующем, где я до сих пор группировка на двух или более столбцов:
Вариант 1:
[{"_id":"Auto","postdate":"2013-01-04T05:00:00.000Z","total":24},
{"_id":"Fees","postdate":"2012-12-20T05:00:00.000Z","total":-0.02}]
Вариант 2:
["category":"Auto","postdate":"2013-01-04T05:00:00.000Z","total":24},
{"category":"Fees","postdate":"2012-12-20T05:00:00.000Z","total":-0.02}]
Как это сделать в mongodb?
Опция 1 первая строка должна быть 'Тарифы'. Это опечатка? – Veeram
Нет второго, фактически, должен быть «Авто». Изменено. Благодарю. –
Я этого не понимаю. Ожидаете ли вы, что категория изменится? Можете ли вы включить образцы документов? Вы группируете по категориям, за которой следует дата публикации в агрегировании. Вам понадобится еще один групповой этап, чтобы сгруппировать их по категориям. – Veeram