MongoDB'de find ve aggregation komutları, farklı işlevlere sahip temel sorgulama araçlarıdır. find komutları, basit veri sorgulamaları, belirli kriterlere uyan belgeleri bulma, filtreleme ve sıralama için kullanılırken; aggregation komutları, daha karmaşık sorgulamalar, veri dönüştürmeleri, gruplama ve analizler için kullanılır. find daha basit ve hızlıdır, ancak büyük veri setlerinde performans sorunları yaşayabilir. aggregation ise daha esnek ve güçlüdür, ancak daha karmaşıktır ve veritabanı taramalarında daha verimli çalışır. Hangi komutun kullanılacağı, sorgu gereksinimlerine ve veri erişim hedeflerine bağlıdır.
"find" komutları:
- Temel veri sorgulamaları için kullanılır.
- Belirli kriterlere uyan belgeleri bulmak için kullanılır.
- Belgeleri filtrelemek ve sıralayabilmek için kullanılabilir.
- Tekrarlanan belgeleri içerebilir.
- Daha basit ve anlaşılması kolaydır.
db.courses.find({ "title": "Physics I" })
![](https://www.devedijital.com//d/r/mceu7016181721720090350251.png)
"aggregation" Komutları:
- Daha karmaşık veri sorgulamaları ve dönüştürmeleri için kullanılır.
- Çoklu koleksiyonlardan veri birleştirmek için kullanılabilir.
- Verileri gruplandırmak, toplamak ve ortalama almak için kullanılabilir.
- Daha benzersiz belgeler döndürür.
- Daha güçlü ve esnektir, ancak find komutlarına kıyasla daha karmaşık olabilir.
db.your_collection_name.aggregate([
{ $match: { "field1": "value1" } },
{ $group: { _id: "$field2", count: { $sum: 1 } } }
])
![](https://www.devedijital.com//d/r/mceu42337689931720091686024.png)
- Basit ve hızlı veri sorgulamaları için find komutlarını kullanın.
- Karmaşık veri sorgulamaları, veri dönüştürmeleri ve analizleri için aggregation komutlarını kullanın.
- find komutları, veritabanında bir tarama gerçekleştirirken, aggregation komutları bir boru hattı (pipeline) kullanır.
- ind komutları, veritabanından büyük miktarda veri getirmek için kullanıldığında performans problemlerine yol açabilirken, aggregation komutları daha verimli olabilir.
- aggregation komutları, find komutlarına kıyasla daha yeni bir özelliktir ve hala geliştirme aşamasındadır.
Hangi komutu kullanacağınız, sorgu gereksinimlerinize ve veri erişim hedeflerinize bağlıdır.