Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Aggregation Pipeline 1: $match, $group, $project, $unwind, $lookup ve $facet
MongoDB'de aggregation pipeline, document'leri sırayla stage'lerden geçirip yeni sonuçlar üretir; $match başta olursa index kullanılır, $unwind ise document sayısını array boyunca çoğaltır. Gerçek çıktılarla aylık ciroyu iki katına çıkaran $unwind hatası, SQL Temelleri'ndeki GROUP BY ve HAVING sonuçlarıyla birebir aynı $group çıktıları, optimizer'ın stage sırasını değiştirmesi, $lookup'ın join stratejisi ve arama sayfası için $facet.
Aggregation Pipeline 2: $setWindowFields, $graphLookup, $bucket, $merge ile Materialized View ve Bellek Limitleri
MongoDB'de window function'ların karşılığı $setWindowFields; ama eksik günleri $densify ile eklemeden yapılan hareketli ortalama, takvim günlerine değil var olan document'lere göre hesaplanır. Gerçek çıktılarla SQL Temelleri'ndeki running total, top-N ve 7 günlük ortalamayla birebir aynı sonuçlar, $graphLookup ile kategori ağacı, $bucketAuto, $merge ile artımlı yenilenen materialized view, 9.0'ın sorgu başına bellek sınırı ve $function.