Menu
CoddyTech

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.

challenge icon

Défi

Facile

Il 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

Entraînez-vous par vous-même : Playground Express