Mam kolekcję dokumentów w formacie
{
"name": <name>,
"status": {
"statusId": <can be a number which I want to aggregate like 1/2/3/4>
}
}
Chcę mieć agregację według status.statusId
- np. 5 dokumentów ma status.statusId
= 0, 3 dokumenty mają status.statusId
= 5 itd.
próbowałem
db.getCollection("users").aggregate([
{
$group: { _id: { "status": { "statusId": "$statusId" }}, count: {$sum:1} }
}
])
ale to nie działa.
Gdzie się mylę?
Odpowiedzi:
1 dla odpowiedzi № 1Powinieneś użyć notacji kropkowej dla swojego _id
db.getCollection("users").aggregate([
{
$group: { _id: "$status.statusId", count: {$sum:1} }
}
])