Moyennes par groupe
Fait partie de la section Bases de données avec MongoDB du Journey Node.js de Coddy. Leçon 22 sur 29.
Un groupe peut calculer plusieurs résumés à partir des mêmes documents entrants. L’expression de regroupement détermine quels enregistrements vont ensemble ; chaque accumulateur calcule un champ de sortie distinct.
{$group: {
_id: '$team',
players: {$sum: 1},
averageScore: {$avg: '$score'}
}}Pour deux joueurs de la même équipe qui obtiennent 8 et 12, players vaut 2 et averageScore vaut 10. La référence '$score' entre guillemets lit le score de chaque joueur entrant. Applique la même idée aux années de publication des livres. Tu peux choisir le nom du champ de sortie ; la référence de champ identifie les valeurs à moyenner.
Défi
FacileIl s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement exercise.js.
Regroupe les livres par genre et renvoie _id, le nombre et averageYear. Trie le résultat par _id dans l’ordre croissant. Lance le projet : classic a un nombre de 1 et averageYear vaut 1815 ; scifi a un nombre de 2 et averageYear vaut 1972.
Essayez vous-même
export async function exercise(books) {
return await books
.aggregate([{ $group: { _id: '$genre', count: { $sum: 1 } } }, { $sort: { _id: 1 } }])
.toArray();
}
Toutes les leçons de Bases de données avec MongoDB
1Documents
Un livre comme documentCollections et bases de donnéesSe connecter à MongoDBLire des documents stockésInsérer des documentsTrouver un documentRechercher par ObjectIdComparer des nombresFiltres de requêteChoisir les champs renvoyésTrier les résultats de requêteConserver les premiers résultatsProjection, tri et limiteEntraînez-vous par vous-même : Playground Express