Menu
CoddyTech

Rata-Rata dalam Kelompok

Termasuk bagian Database dengan MongoDB dalam perjalanan Node.js di Coddy. Pelajaran 22 dari 29.

Satu grup dapat menghitung beberapa ringkasan dari dokumen yang sama. Ekspresi pengelompokan menentukan catatan mana yang termasuk dalam grup yang sama; setiap akumulator menghitung field output yang terpisah.

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

Untuk dua pemain dalam tim yang sama dengan skor 8 dan 12, players bernilai 2 dan averageScore bernilai 10. '$score' yang diapit tanda kutip mengambil skor dari setiap pemain yang masuk. Terapkan ide yang sama pada tahun terbit buku. Kamu bebas menentukan nama field output; referensi field mengidentifikasi nilai yang akan dirata-ratakan.

challenge icon

Tantangan

Mudah

Ini adalah proyek latihan kecil. Penyiapannya sudah disediakan, edit hanya exercise.js.

Kelompokkan buku berdasarkan genre, lalu kembalikan _id, count, dan averageYear. Urutkan output berdasarkan _id secara menaik. Jalankan: classic memiliki count 1 dan averageYear 1815; scifi memiliki count 2 dan averageYear 1972.

Coba sendiri

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

Semua pelajaran di Database dengan MongoDB

Latihan sendiri: Playground Express