MongoDB – Sorgu Operatörleri

MongoDB ile ilgili yazmaya başladığım yazı serisinin 2.yazısıyla devam ediyorum. Giriş olarak yazdığım ilk yazının linki

2. yazıda ise shell üzerinden sorgulama için kullanılan operatörleri göstermeye devam edeceğim.

  • Insert ile kayıt işlemi;

doc = { “name”: “smith”, “age”:”30 }  db.test.insert(doc)

  • Karşılaştırma operatörlerine bakacak olursak: $eq(eşit), $gt(büyük), $gte(büyük eşit), $lt(küçük), $lte(küçük eşit), $in(içinde).

db.scores.find({score: {$gt:95}} : 95 < x

db.scores.find({score: {$gt:95, $lte:98}} : 95 < x <=98

  • $exists operatörü, belirtilen veri kısmının bulunduğu durumları listeler.

db.test.find({profession:{$exists:true}})

  • $regex operatörü

db.test.find({name:{$regex:”a”}}) : içinde a değeri olan isimler

$regex:”a$” : sonu a ile bitenler / $regex:”^a” : a harfi ile başlayan

db.users.find({name:{$regex:”a”}, email:{$exists:true}})

  • $or operatörü. Örn: İçinde ismi e ile bitenlere veya yaş değeri bulunanları;

db.users.find({$or:[{name:{$regex:”e$”}}, {age:{$exists.true}}});

db.scores.find({$or:[{score:{$lt:50}}, {score:{$gt:90}}]};

  • $and operatörü

db.users.find({$and:[{name:{$gt:”c”}}, {name:{#regex:”a”}}]});

  • Count ile sorgularda bulunan değer sayısını hesaplamak

db.scores.count({type:”essay”, score:{$gt:90}});

 Bundan sonra kullanacağım kodlarda mongodb sitesinden indirilip veritabanına eklenen restaurants collection verilerini kullanacağım.Yükleme ve kurulum için

 Aşağıda gösterilen resimde restaurants collection içinde bulunan herhangi bir veri gösterilmiştir.

mongo restaurant findone
findone ile rastgele veri çekmek
  • db.restaurants.find({ borough: “Brooklyn” }) brooklyn olan veriler getir.
  • db.restaurants.find({“grades.grade”:”A”}) grades dizisi içinde grade değeri A ise, sorgu sonucu o değerleri getir.
  • db.restaurants.find({“grades.score”:{$gt:10}}) score değeri 10’dan büyük olan verileri getir.
  • db.accounts.find({name:{$in:[“Ali”,”Ayşe”]}}) isim değerleri ali ve ayşe olan verileri getir.
  • db.scores.update({“score”:{$lt:70}},{$inc:{“score”:10},{multi:true}) eğer not değeri 70’den az ise, not değerine +10 eklenecektir. multi=true ile çoklu update işlemi aktif edilir.

Bu yazıda anlattığım sorgular için kullanılan sorgu operatörler bunlardır. Daha detaylı bilgi MongoDB sitesinde mevcuttur. Geniş bir dokümantasyon bulunmaktadır. Özelleştirilmiş sorgular çekmek için çeşitli parametreler kullanıyor. Diğer yazılarımda MongoDB ile ilgili özellikleri yazmaya devam edeceğim.

Advertisements

One thought on “MongoDB – Sorgu Operatörleri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s