Aggregate
- Node.js kursu
- İleri seviye
- Ders 29/83
- 5 dk
Mongoose aggregate pipeline öğrenirsin.
Aggregate nedir?
Aggregate (toplama), MongoDB'nin boru hattı (pipeline) tabanlı veri işleme aracıdır. Belgeleri aşamalardan (stage) geçirerek gruplama, filtreleme, sıralama ve hesaplama yapar. Bu, basit sorgularla yapılamayan karmaşık analizleri mümkün kılar.
Boru hattı bir dizi aşamadır. Her aşama belgeleri alır, işler ve sonrakine geçirir. Örneğin [{ $match: { yas: { $gt: 18 } } }, { $group: { _id: "$sehir", sayi: { $sum: 1 } } }] önce yetişkinleri süzer, sonra şehre göre gruplar. Model.aggregate(pipeline) ile çalıştırılır.
Aggregate aşamaları
Boru hattının her aşaması bir operatör ile başlar. $match belgeleri süzer (find gibi). $group belgeleri bir anahtara göre gruplar ve hesaplama yapar ($sum, $avg). $sort sıralar. $count belge sayısını verir.
Aşamalar dizide sırayla çalışır; sıra önemlidir. Önce $match ile süzerek belge sayısını azaltırsan, sonraki aşamalar daha hızlı çalışır. Bu, büyük veri setlerinde performans için kritiktir.
Uygulama aggregate türünü yaz
mongoose modülünü içe aktar. mongoose.model("User", { ad: String }) ile bir model oluştur. typeof User.aggregate sonucunu yaz.
Başlangıç kodu
// modülü içe aktar
// model oluştur
// aggregate türünü yazÖrnek çözüm
const mongoose = require("mongoose");
const User = mongoose.model("User", { ad: String });
console.log(typeof User.aggregate);Beklenen çıktı
function
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Metod adını tamamla
const results = await User.____([{ $match: {} }])
const results = await User.aggregate([{ $match: {} }])
Açıklama: User.aggregate([...]) boru hattını çalıştırır.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
$match |
Filtreler |
$group |
Gruplar |
$sort |
Sıralar |
$count |
Sayar |
3 Aggregate hangi parametre alır?
- Aşama dizisi Doğru cevap
- Bir dize
- Bir sayı
- Bir fonksiyon
Açıklama: Aggregate bir aşama dizisi alır.