Bu bölüm, MongoDB Birleştirme Borusunu tanıtıyor. Bu boru, genellikle SQL'deki group by ifadesine benzer şekilde istatistiksel analizler için kullanılır. MongoDB kabuğunda, istatistiksel analiz db.collection.aggregate() işlevi aracılığıyla gerçekleştirilir.

Konsept

Birleştirme Borusu, verileri bir borudan akıp giden su gibi ele alan soyut bir kavramdır. Verileri boru içinde birden çok aşamada işleyebiliriz. Bir aşama verileri işledikten sonra, işlenmiş sonuçlar bir sonraki aşamaya aktarılır ve daha fazla işleme tabi tutulur.

İstatistiksel analizde birleştirme borusu uygulama örnekleri:

  • İlk aşamada, belirli koşullara göre koleksiyondan bir belge veri kümesi alınır.
  • İkinci aşamada, alınan belge verileri gruplandırılır ve birleştirilir.
  • Üçüncü aşamada, ikinci aşamadaki birleştirilmiş veriler sıralanır.

Tüm süreç, verilerin borunun bir ucundan içeri girdiği, birkaç aşamada işleme tabi tutulduğu ve ardından nihai bir sonuç ürettiği bir boru işlemine benzer.

MongoDB Boru Desteklenen Operatörler

Aşağıda MongoDB tarafından desteklenen yaygın boru operatörleri bulunmaktadır:

Operatör Açıklama
$match $match aşaması, koşullara göre belge verilerini filtrelemek için kullanılır, SQL'deki where koşuluna benzer.
$group $group aşaması, belge verilerini gruplandırmak ve birleştirmek için kullanılır, SQL'deki group by ifadesine benzer.
$sort Verileri sıralamak için kullanılır.

Birleştirme Borusunun Kullanım Adımları

Genellikle üç adım gereklidir:

  • Hedef verileri $match kullanarak filtreleyin.
  • $group kullanarak verileri gruplandırın ve birleştirin.
  • Sonuçları $sort kullanarak sıralayın (isteğe bağlı).

Örnek:

db.orders.aggregate([
                     { $match: { status: "A" } },
                     { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
                     { $sort: { total: -1 } }
                   ])

Eşdeğer SQL:

select sum(amount) as total from orders 
		where status="A" 
		group by cust_id 
		order by total desc

Not: Daha fazla bilgi için lütfen sonraki bölümlere başvurun.