Menu
CoddyTech

Medie all'interno dei gruppi

Fa parte della sezione Database con MongoDB del percorso Node.js di Coddy. Lezione 22 di 29.

Un gruppo può calcolare diversi riepiloghi sugli stessi documenti in ingresso. L’espressione di raggruppamento sceglie quali record appartengono allo stesso gruppo; ogni accumulatore calcola un campo di output separato.

{$group: {
    _id: '$team',
    players: {$sum: 1},
    averageScore: {$avg: '$score'}
}}

Per due giocatori della stessa squadra che ottengono 8 e 12, players è 2 e averageScore è 10. '$score', racchiuso tra virgolette, legge il punteggio di ogni giocatore in ingresso. Applica la stessa idea agli anni di pubblicazione dei libri. Il nome del campo di output è a tua scelta; il riferimento al campo identifica i valori di cui calcolare la media.

challenge icon

Sfida

Facile

Questo è un piccolo progetto di esercitazione. La configurazione è già fornita; modifica solo exercise.js.

Raggruppa i libri per genere e restituisci _id, count e averageYear. Ordina l'output in ordine crescente per _id. Esegui: classic ha count 1 e averageYear 1815; scifi ha count 2 e averageYear 1972.

Provalo tu

export async function exercise(books) {
    return await books
        .aggregate([{ $group: { _id: '$genre', count: { $sum: 1 } } }, { $sort: { _id: 1 } }])
        .toArray();
}

Tutte le lezioni di Database con MongoDB

Esercitati da solo: Playground Express