CodeBlanks Logo Icon CodeBlanks

Aggregate

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

index.js
// modülü içe aktar

// model oluştur

// aggregate türünü yaz

Örnek çözüm

index.js
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

Soru
const results = await User.____([{ $match: {} }])
Cevap
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.

İleri seviye bölümündeki tüm dersler