MONGODB – SORGU İŞLEMLERİ
- Bir collectiondaki tüm verileri sorgulamak istersek find() metodunu kullanabiliriz.
db.kitap.find()
- İstersek find metoduna parametre vererek aşağıdaki gibi özel sorgular da hazırlayabiliriz.
db.kitap.find( {_id: 2} )
db.kitap.find( {name : "patlıcan"} )
- Aşağıda ilk json blogunda aranacak elemanlar hakkında koşul belirtilmiştir. İstenen, sayfa sayısı 350den büyük olan documanları getirdir. İkinci blokta ise hangi propertylerin gözükmesini istediğimiz belirtilmiştir. Getirilecek olan dökümanda kitapAdi, sayfa gözüksün, id ise gözükmesin istenmiştir.
db.kitap.find( {sayfa:{$gte:350}}, {kitapAdi:1, sayfa:1, _id:0} )
- Sorgu sonuçlarının artan sırada mı azalan sırada mı geleceğini de sort metoduyla düzenleyebiliriz.
db.kitap.find( {} ).sort({ sayfa:-1 })
- MongoDb’de aynı sqlde olduğu gibi and, or, nand ve nor ifadelerini kullanarak aşağıdaki gibi mantıksal koşullar da oluşturabiliriz.
db.kitap.find( { $and:[ { sayfa: { $gte:300 } }, { baski:{ $gte:3 } } ] })
- Aşağıdaki sorgu isbn fieldina sahip olmayan kayıtları getir anlamını taşımaktadır.
db.kitap.find( { isbn:{ $exists: false } } )
- Aşağıda ise yine aynı sqlde olduğu gibi in sözciğini kullanarak baskisi 2 ve 3 olanları çekebilir veya nin ifadesiyle 2 ve 3 olmayanları çekebiliriz.
db.kitap.find( { baski: { $in:[ 2,3 ] } })
db.kitap.find( { baski: { $nin:[ 2,3 ] } })
- Limit keywordu ile çekeceğimiz kayıt sayısını kısıtlayabilir, skip ile de verdiğimiz değer kadarını yok sayıp veri çekmeye ilerleyen veriler üzerinden başlayabiliriz.
db.kitap.find().limit(5)
db.kitap.find().skip(1)
- MongoDbnin en güzel özelliklerinden biri de mongoshell ile bize javascript kullanabilme imkanı vermesidir.
db.kitap.find( { $where: "this.kitapAdi=='c++'"} )
db.kitap.find( { $where : function(){ var obj = null; if(this.baski>5) obj=this; return obj; }
- MongoDbde aynı fielda farklı veri tiplerinde veri atılabilir. Örneğin, price diye bir alanınız var ise buna 2.90 şeklinde bir double, 2 değerinde bir int veya “2” olarak bir string de atayabilirsiniz. Bu da mongodbde bir alanın tipine göre veri çekme sorgusunun ortaya çıkasını sağlamıştır. Aşağıda kitapAdı propertysinin değerinin string olan ifadeleri çekmesi söylenmiştir.
db.kitap.find({kitapAdi: { $type: "string" } })
//mongoda en fazla 20 kayıt döner artırmak için
DBQuery.shellBatchSize=40