У меня есть коллекция мобильных устройств, и я хочу подсчитать устройства для каждого производителя, а также подсчитать каждую модель. Все, что я мог получить до сих пор, это:
{ $group : {
_id : "$hw.man",
mantotal : { $sum : 1 },
models : { $addToSet : "$hw.mod" }
} }
result:
[{"_id":"LGE","mantotal":1,"models":["GT540"]},{"_id":"asus","mantotal":1,"models":["Nexus 7"]},{"_id":"samsung","mantotal":3,"models":["GT-I9300","GT-I9200"]}]
or
{ $group : {
_id : { man : "$hw.man", mod : "$hw.mod" },
total : { $sum : 1 } }
}
result:
[{"_id":{"man":"LGE","mod":"GT540"},"total":1},{"_id":{"man":"asus","mod":"Nexus 7"},"total":1},{"_id":{"man":"samsung","mod":"GT-I9300"},"total":2},{"_id":{"man":"samsung","mod":"GT-I9200"},"total":1}]
Как я могу добиться такого результата:
{"_id":"samsung","mantotal":3,"models":[{mod: "GT-I9300", modtotal: 2}, {mod: "GT-I9200", modtotal: 1}]}