MongoDB Projection ve Sorgu Seçenekleri Nelerdir?


MongoDB Projection ve Sorgu Seçenekleri Nelerdir?

Giriş: MongoDB'de Projection ve Sorgu Mantığı

MongoDB, NoSQL veritabanları arasında esnek veri modeli ve güçlü sorgulama yetenekleri ile öne çıkar. Özellikle büyük veri yapılarında, yalnızca ihtiyacımız olan alanları almak ve gereksiz veri trafiğini azaltmak için projection kullanılır. Bu makalede, MongoDB projection ile veri çekme yöntemlerini ve temel sorgu seçeneklerini detaylı olarak inceleyeceğiz.

Projection Kullanımı ve Sorgu Seçenekleri

Projection, bir MongoDB sorgusunda dönen dökümanlardaki hangi alanların gösterileceğini belirler. find() ve findOne() gibi fonksiyonlarda ikinci parametre olarak kullanılır. En temel projection örneği ile başlayalım:


// Tüm kullanıcıların yalnızca ad ve yaş alanlarını seçerek getir
const sonuc = await db.collection('kullanicilar').find({}, {
  projection: { ad: 1, yas: 1, _id: 0 }
}).toArray();
console.log(sonuc);

Yukarıdaki örnekte, ad ve yas alanları 1 ile seçilmiş ve _id alanı 0 ile hariç tutulmuştur. Projection ayrıca gömülü alanları seçmek için nokta gösterimini destekler:


// Sadece iletişim.email bilgilerinin çekilmesi
const sonuc = await db.collection('kullanicilar').find({}, {
  projection: { "iletisim.email": 1, _id: 0 }
}).toArray();

MongoDB'de Sorgu Seçenekleri ve Operatörler

Projection dışında, MongoDB'de veri çekmek için gelişmiş sorgu operatörleri kullanılır. En sık kullanılan sorgu parametrelerinden bazıları aşağıdaki gibidir:

  • $gt, $lt, $eq: Karşılaştırma operatörleriyle belirli koşullara uyan dökümanlar çekilebilir.
  • $in: Belirli bir dizi değer içinde olan kayıtları bulmak için kullanılır.
  • Sort, Limit: Sorgu sonucunu sıralamak ve sınırlandırmak için kullanılır.

// Yaşı 18 ve üzeri olan kullanıcı isimleri (yalnızca "ad" alanı gelecek)
const sonuc = await db.collection('kullanicilar').find({ yas: { $gte: 18 } }, {
  projection: { ad: 1, _id: 0 }
}).sort({ ad: 1 }).limit(10).toArray();

Sonuç: Projection ve Doğru Sorgulama ile Performans

MongoDB projection ve sorgu seçenekleri sayesinde, veri çekme işlemlerinde ihtiyacınız kadar alanı ve veriyi hızlıca filtreleyebilirsiniz. Özellikle büyük veri setleri ile çalışan projelerde, gereksiz verileri istemciye göndermeden performansı artırır, network kullanımını azaltır ve uygulamanızı daha verimli hale getirir. Bu teknikleri uygulayarak MongoDB üzerinde daha kontrollü ve etkili sorgular oluşturabilirsiniz.