Önceki yazılarımda insert() ve find() methodlarını görmüştük. Elimizde şöyle bir random koleksiyonumuz olsun. Öğrencilerin sınav sonuçlarını tuttuğumuz bir koleksiyon düşünelim. Sınav türü ve puanını tutalım. Öğrenci numarası da döngümüzdeki numara olsun.


for (i = 0; i < 1000; i++)
{
isimler = ["vize", "proje", "final"];
for(j=0; j<3; j++)
{
db.sonuclar.insert({"ogrenciNo": i, "sinavTuru": isimler[j], "puan": Math.round(Math.random()*100) });
}
}

Bir önceki dersimizde .find() ve .findOne() methodlarından bahsetmiştim.

.find() methodunu hiç bir parametre vermeden çağırdığımızda o koleksiyondaki bütün dökümanları getiriyordu.

Şimdi, şu kodun ne yaptığını hatırlayalım:

db.sonuclar.find({"puan" : 70});

sonuclar koleksiyonumuzdaki puan alanımızın 70 olduğu bütün dökümanları getiriyordu değil mi?

Peki, 70’den yüksek puan alanları getirmek istesem? Ya da 50’den daha az olanları getirmek istesem? İşte bu gibi durumlarda $gt ve $lt devreye giriyor.

db.sonuclar.find({"puan" : {$gt: 70} });

ile “Greater Than” yani 70’den büyük diyerek 70’den yüksek puan almışlara eriştim.

db.sonuclar.find({"puan" : {$lt: 50} });

ile de “Less Than” yani 50’den küçük diyerek 50’den az puan almışlara eriştim.

Son olarak, $gte ve $lte versiyonları ise belirttiğiniz rakamı da o aramaya dahil ediyor. Yani eğer yukarıda $gte:70 deseydik, 70 ve 70’den fazla puan almışları getirecekti.

db.sonuclar.find({"puan" : {$gt: 70, $lt: 90} });

Yukardaki kod ile de 90 ve 70 aralığında puan almış olanları listeledim 🙂

Bir sonraki yazımda görüşmek üzere.