Mongodb: groeperen op en tellen
U kunt de volgende syntaxis gebruiken om te groeperen en tellen in MongoDB:
db.collection.aggregate([ { $group : { _id : " $field_name ", count :{ $sum :1}}} ])
Houd er rekening mee dat veldnaam het veld is waarop u wilt groeperen.
De volgende voorbeelden laten zien hoe u deze syntaxis kunt gebruiken met een incassoteam met de volgende documenten:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Voorbeeld 1: groeperen op en tellen
We kunnen de volgende code gebruiken om te groeperen op ‚positie‘-veld en het aantal keren dat elke positie voorkomt te tellen.
db.teams.aggregate([ { $group : { _id : " $position ", count :{ $sum :1}}} ])
Dit levert de volgende resultaten op:
{ _id: ' Forward ', count: 1 } { _id: ' Guard ', count: 3 } { _id: ' Center ', count: 1 }
Dit vertelt ons:
- De positie “Vooruit” verschijnt 1 keer.
- De positie “Bewaker” verschijnt 3 keer.
- De positie “Midden” verschijnt 1 keer.
Voorbeeld 2: groeperen op en tellen (en vervolgens sorteren)
We kunnen de volgende code gebruiken om het aantal keren dat elke positie voorkomt te tellen en de resultaten automatisch in oplopende volgorde te sorteren:
db.teams.aggregate([ { $group : { _id : " $position ", count :{ $sum :1}}}, { $sort : { count : 1}} ])
Dit levert de volgende resultaten op:
{ _id: ' Forward ', count: 1 } { _id: ' Center ', count: 1 } { _id: ' Guard ', count: 3 }
We kunnen -1 gebruiken in het count-argument om de resultaten in aflopende volgorde te sorteren:
db.teams.aggregate([ { $group : { _id : " $position ", count :{ $sum :1}}}, { $sort : { count :-1}} ])
Dit levert de volgende resultaten op:
{ _id: ' Guard ', count: 3 } { _id: ' Forward ', count: 1 } { _id: ' Center ', count: 1 }
Opmerking : u kunt de volledige documentatie voor $group hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:
MongoDB: Groeperen op en optellen
MongoDB: Hoe verschillende waarden in een veld te tellen
MongoDB: groeperen op meerdere velden