Średnie w grupach
Część sekcji Bazy danych z MongoDB ścieżki Node.js w Coddy. Lekcja 22 z 29.
Grupa może obliczyć kilka podsumowań dla tych samych dokumentów wejściowych. Wyrażenie grupujące określa, które rekordy należą do siebie; każdy akumulator oblicza osobne pole wynikowe.
{$group: {
_id: '$team',
players: {$sum: 1},
averageScore: {$avg: '$score'}
}}Gdy dwóch graczy z tej samej drużyny uzyska wyniki 8 i 12, wartość players wynosi 2, a averageScore wynosi 10. Ujęte w cudzysłów '$score' odczytuje wynik każdego gracza z dokumentów wejściowych. Zastosuj ten sam pomysł do lat wydania książek. Nazwa pola wynikowego zależy od Ciebie; odwołanie do pola wskazuje wartości, dla których ma zostać obliczona średnia.
Wyzwanie
ŁatwyTo mały projekt ćwiczeniowy. Konfiguracja jest już przygotowana; edytuj tylko exercise.js.
Pogrupuj książki według gatunku i zwróć _id, liczbę i averageYear. Posortuj wyniki rosnąco według _id. Uruchom: classic ma count 1 i averageYear 1815; scifi ma count 2 i averageYear 1972.
Spróbuj swoich sił
export async function exercise(books) {
return await books
.aggregate([{ $group: { _id: '$genre', count: { $sum: 1 } } }, { $sort: { _id: 1 } }])
.toArray();
}
Wszystkie lekcje w sekcji Bazy danych z MongoDB
1Dokumenty
Książka jako dokumentKolekcje i bazy danychŁączenie z MongoDBOdczytywanie zapisanych dokumentówWstawianie dokumentówWyszukiwanie jednego dokumentuWyszukiwanie według ObjectIdPorównywanie liczbFiltry zapytańWybieranie zwracanych pólSortowanie wyników zapytaniaOgraniczanie do pierwszych wynikówProjekcja, sortowanie i limit2Modyfikowanie dokumentów
Aktualizowanie dokumentówOperatory aktualizacjiPoćwicz samodzielnie: Edytor online Express