Привет.
Пример коллекции:
{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "status": "ok"}
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "status": "ok"}
{ "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 5, "status": "ok"}
{ "_id" : 4, "item" : "abc", "price" : 10, "quantity" : 10, "status": "ok"}
{ "_id" : 5, "item" : "xyz", "price" : 5, "quantity" : 10, "status": "error"}
Как в результирующем документе сгруппировать по "item", посчитать количество этих совпадений, также сгруппировать по "status" и тоже посчитать эти поля? Чтобы получилось вот так:
{ "_id" : {{ "item" : "abc", count: 2 }, {"status":[ "error": 0, "ok": 2 ]}}
{ "_id" : {{ "item" : "jkl", count: 1 }, {"status":[ "error": 0, "ok": 1 ]}}
{ "_id" : {{ "item" : "xyz", count: 2 }, {"status":[ "error": 1, "ok": 1 ]}}
Если группировать отдельно по каждому полю - можно посчитать всё, что необходимо. Но как сделать в рамках одного запроса - не понимаю. Возможно ли такое?