Menu
CoddyTech

Gruplar İçindeki Ortalamalar

Coddy'nin Node.js Journey'sinin MongoDB ile Veritabanları bölümünün bir parçası. Ders 22 / 29.

Bir grup, gelen belgelerin aynı kümesi için birkaç özet hesaplayabilir. Gruplama ifadesi hangi kayıtların birlikte yer alacağını seçer; her biriktirici ayrı bir çıktı alanı hesaplar.

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

Aynı takımdaki iki oyuncu 8 ve 12 puan aldığında, players 2 ve averageScore 10 olur. Tırnak içindeki '$score', gelen her oyuncunun puanını okur. Aynı fikri kitap yıllarına uygulayın. Çıktı alanının adını siz seçebilirsiniz; alan başvurusu, ortalaması alınacak değerleri belirtir.

challenge icon

Görev

Kolay

Bu küçük bir alıştırma projesidir. Kurulumu hazırdır; yalnızca exercise.js dosyasını düzenle.

Kitapları türe göre grupla ve _id, count ve averageYear değerlerini döndür. Çıktıyı _id değerine göre artan sırada sırala. Çalıştır: classic için count 1 ve averageYear 1815; scifi için count 2 ve averageYear 1972.

Kendin dene

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

MongoDB ile Veritabanları bölümündeki tüm dersler

Kendi başına pratik yap: Express playground