Meine Sammlung hat Daten wie folgt aus:MongoDB, wie man Gruppendokumente
[
{
"code": 1,
"location": "1 QUEEN STREET",
"_id": "1",
},
{
"code": 1,
"location": "2 KING STREET",
"_id": "2"
},
{
"code": 2,
"location": "1 QUEEN STREET",
"_id": "3"
},
{
"code": 2,
"location": "2 KING STREET",
"_id": "4"
},
{
"code": 2,
"location": "2 KING STREET",
"_id": "5"
}
]
für heraus suchen, das würde Gruppendokumente von „Ort“ und eine Reihe von Codes zu jedem Dokument hinzugefügt haben, die die Zählung für jede enthält einzigartiger Code.
Ausgang würde so aussehen:
[
{ "location": "1 QUEEN STREET", "codes":["code1":1,"code2":1]},
{ "location": "2 KING STREET", "codes":["code1":1,"code2":2]}
]
Ich habe versucht, Abfragen wie diese:
aggregate([{ $group : { _id : "$location", codes: { $addToSet: "$code",count: { $sum: 1 } } } }])
aggregate([{ $group : { _id : "$location", codes: {$group:{_id:"$_code",count:{$sum :1}}} } }])
Vielen Dank für jede Hilfe.
Bitte setzen Loch Dokument hier, nicht nur Array. –
Ihre erwartete Ausgabe ist nicht gut, wie wäre es mit 'Codes' ein Array von Werten anstelle von Filialdokumenten? – styvane
@Styvane ja ein Array von Werten wäre in Ordnung. Ich kann die Frage bearbeiten, um Ihr Feedback zu reflektieren. – HIlo