Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.

"MongoDB Aggregation Pipeline Operatörleri Rehberi (Detaylı Anlatım ve Örnekler)"
MongoDB, NoSQL veritabanı sistemleri arasında en popüler olanlardan biridir. Büyük veriler üzerinde karmaşık sorgular yapabilmek için Aggregation Pipeline adında güçlü bir sorgu sistemi sunar.
Bu rehberde MongoDB’de sık kullanılan aggregation operatörlerini, mantıklarını ve örnek kullanımlarını detaylı şekilde inceleyeceğiz.
1. Aggregation Pipeline Nedir?
Aggregation Pipeline, verileri adım adım işleyerek filtreleme, gruplaya, dönüştürme ve hesaplama yapmamızı sağlayan bir yapıdır. SQL'deki SELECT
, WHERE
, GROUP BY
gibi işlemler tek pipeline içinde yapılabilir.
Basit bir örnek:
db.products.aggregate([
{ $match: { category: "Electronics" } }, // Filtre
{ $group: { _id: "$brand", total: { $sum: 1 } } } // Gruplama ve sayma
]);
2. Temel Pipeline Aşamaları
2.1 $match (Filtreleme)
SQL’deki WHERE
gibidir.
{ $match: { status: "active" } }
2.2 $group (Gruplama)
SQL’deki GROUP BY
gibidir.
{ $group: { _id: "$category", total: { $sum: 1 } } }
2.3 $project (Alan Seçme/Dönüştürme)
SQL’deki SELECT
gibi çalışır.
{ $project: { name: 1, price: 1, totalPrice: { $multiply: ["$price", "$qty"] } } }
2.4 $sort (Sıralama)
{ $sort: { price: -1 } } // Azalan
2.5 $limit ve $skip
Sayfalama işlemlerinde kullanılır.
{ $limit: 10 }
{ $skip: 10 }
2.6 $lookup (Join)
Farklı koleksiyonları birleştirir.
{
$lookup: {
from: "categories",
localField: "category_id",
foreignField: "_id",
as: "category_info"
}
}
3. Mantıksal Operatörler
Operatör | Açıklama |
---|---|
$and |
Tüm koşullar sağlanmalı. |
$or |
En az bir koşul sağlanmalı. |
$not |
Koşulun tersini alır. |
$nor |
Hiçbir koşul sağlanmamalı. |
Örnek:
{ $match: { $and: [ { age: { $gte: 18 } }, { status: "active" } ] } }
4. Karşılaştırma Operatörleri
Operatör | Açıklama |
$eq |
Eşittir (= ). |
$ne |
Eşit değil. |
$gt |
Büyük. |
$gte |
Büyük veya eşit. |
$lt |
Küçük. |
$lte |
Küçük veya eşit. |
$in |
Listede var mı. |
$nin |
Listede yok mu. |
5. Matematiksel Operatörler
Operatör | Açıklama |
$sum |
Toplama veya sayma. |
$avg |
Ortalama. |
$min |
En küçük. |
$max |
En büyük. |
$multiply |
Çarpma. |
$divide |
Bölme. |
$add |
Toplama. |
$subtract |
Çıkarma. |
$mod |
Mod (kalan) hesabı. |
Örnek:
{ $group: { _id: null, totalRevenue: { $sum: "$price" }, avgRevenue: { $avg: "$price" } } }
6. Koşullu Operatörler
Operatör | Açıklama |
$cond |
IF-ELSE mantığı. |
$ifNull |
Null ise alternatif değer. |
$switch |
Çoklu koşul kontrolü. |
Örnek:
{
$project: {
statusText: {
$cond: { if: { $gte: ["$score", 50] }, then: "Geçti", else: "Kaldı" }
}
}
}
7. Dizi (Array) Operatörleri
Operatör | Açıklama |
$size |
Dizi uzunluğu. |
$push |
Gruplamada array’e ekler. |
$addToSet |
Tekrar etmeyen ekleme. |
$first |
İlk değer. |
$last |
Son değer. |
$filter |
Diziyi filtreler. |
$map |
Diziyi dönüştürür. |
$reduce |
Diziyi tek değere indirger. |
8. Metin Operatörleri
Operatör | Açıklama |
$regex |
Regex araması. |
$text |
Full-text search. |
$concat |
String birleştirme. |
$substr |
Parça alma. |
$toLower |
Küçük harf. |
$toUpper |
Büyük harf. |
9. Değişkenler
Değişken | Açıklama |
$$ROOT |
Tüm belgeyi temsil eder. |
$$CURRENT |
O anki alanı temsil eder. |
$$REMOVE |
Alanı silmek için kullanılır. |
MongoDB’nin Aggregation Pipeline operatörleri sayesinde SQL’de karmaşık olan pek çok işlemi tek sorguda yapabilirsiniz. Bu rehberde anlattığımız operatörler, günlük veri analizi, raporlama ve istatistik çıkarma işlemlerinizde size büyük kolaylık sağlayacaktır.
📌 Tavsiyem:
-
$match
’i pipeline’ın en başında kullanın → Performans artar. -
Gereksiz alanları
$project
ile çıkarın → Bellek tasarrufu olur. -
Büyük datasetlerde
index
kullanın → Sorgular hızlanır.