Mongodb: nasıl gruplandırılır ve toplanır?
MongoDB’de gruplamak ve saymak için aşağıdaki sözdizimini kullanabilirsiniz:
 db.collection.aggregate([
    { $group : { _id : " $field_name1 ", count :{ $sum : " $field_name2 "}}}
])
Field_name1’in gruplandırmak istediğiniz alan olduğunu ve field_name2’nin toplamak istediğiniz alan olduğunu unutmayın.
Aşağıdaki örnekler, bu sözdiziminin aşağıdaki belgelere sahip bir koleksiyon ekibiyle nasıl kullanılacağını gösterir:
 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Forward ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Örnek 1: gruplandırma ve toplama
Aşağıdaki kodu “pozisyon” alanına göre gruplamak ve her pozisyon için puanların toplamını saymak için kullanabiliriz.
 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}}
])
Bu, aşağıdaki sonuçları döndürür:
 { _id: ' Forward ', count: 48 }
{ _id: ' Guard ', count: 64 }
{ _id: ' Center ', count: 19 }
Bu bize şunları söylüyor:
- “Saldırgan” pozisyonundaki oyuncuların toplam 48 puanı vardır.
- “Guard” pozisyonundaki oyuncuların toplam 64 puanı vardır.
- “Merkez” konumundaki oyuncuların toplam 19 puanı vardır.
Örnek 2: gruplandırın ve ekleyin (sonra sıralayın)
Her pozisyona ilişkin puanların toplamını bulmak ve sonuçları otomatik olarak artan sırada sıralamak için aşağıdaki kodu kullanabiliriz:
 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}},
    { $sort : { count : 1}} 
])
Bu, aşağıdaki sonuçları döndürür:
 { _id: ' Center ', count: 19 }
{ _id: ' Forward ', count: 48 }
{ _id: ' Guard ', count: 64 }
Sonuçlar artan düzende (küçükten büyüğe) noktalara göre sıralanır.
Sonuçları azalan düzende sıralamak için count argümanında -1’i kullanabiliriz:
 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}},
    { $sort : { count :-1}} 
])
Bu, aşağıdaki sonuçları döndürür:
 { _id: ' Guard ', count: 64 }
{ _id: ' Forward ', count: 48 }
{ _id: ' Center ', count: 19 }
Sonuçların azalan sırada (en büyüğünden en küçüğüne) noktalara göre sıralandığını unutmayın.
Not : $group’un tüm belgelerini burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde MongoDB’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
 MongoDB: Bir alandaki farklı değerler nasıl sayılır?
 MongoDB: Birden fazla alana göre nasıl gruplandırılır
 MongoDB: Nasıl gruplandırılır ve sayılır?
