MongoDB Sıralama Sorgusu Sonuçları

Mongodb Siralama Sorgusu Sonuclari



Hemen hemen tüm veritabanı sistemleri, verileri alınmadan önce sıralamaya öncelik verir, bu da onları diğer veri depolama yöntemlerinden ayırır. MongoDB ayrıca verilerin nasıl sıralanacağını belirlemenin çeşitli yollarına sahiptir. Çoğunlukla, belgenin göründüğü sırayı belirlemek için sort() yöntemini kullanırız. Dizinin sırası, sort() yöntemine bir parametre olarak iletilir. sort() yöntemini oluşturan bir veya daha fazla alanın ardından genellikle '1' veya '-1' değeri gelir. sort() yöntemi, bir sorguyu daha okunaklı hale getirerek belirtilen koleksiyonun anlaşılmasını geliştirir.

MongoDB Sorgu Sonuçlarını Nasıl Sıralar?

sort yöntemi, alanı ve onunla ilişkili değeri tek bir parametre olarak alır. sort yöntemi, {Field: Value} gibi JSON biçimindeki parametreleri kabul eder. Koleksiyondan sıralanmış belgeleri almak için sort() yönteminde birden fazla alan ve değer de girilebilir. Veritabanımıza başka birçok belge eklediğimiz aşağıdaki belgeyi düşünün. Bu MongoDB veritabanının adı “Çalışanlar” olarak adlandırılmıştır. 'Çalışanlar' koleksiyonu, aşağıda gösterilen çalışanların tüm bilgilerine sahiptir.

db.Employees.insertMany([
{
'isim': 'Robert',
'DOB': '14-05-1993',
'cinsiyet erkek',
'e-posta': ' [e-posta korumalı] ',
'department': 'Güvenlik',
'maaş' : 5000
},
{
'isim': 'kyle',
'DOB': '31-05-1999',
'cinsiyet': 'kadın',
'e-posta': ' [e-posta korumalı] ',
'departman': 'BT',
'maaş' : 6200
},
{
'ad': 'Matta',
'DOB': '26-04-1993',
'cinsiyet erkek',
'e-posta': ' [e-posta korumalı] ',
'departman': 'Hesaplar',
'maaş' : 3500
},
{
'isim': 'Kevin',
'DOB': '14-07-1991',
'cinsiyet erkek',
'e-posta': ' [e-posta korumalı] ',
'departman': 'Güvenlik',
'maaş' : 4500
},

{
'isim': 'Julia',
'DOB': '09-12-2000',
'cinsiyet': 'kadın',
'e-posta': ' [e-posta korumalı] ',
'departman': 'BT',
'maaş' : 2500
}
])

'Çalışan' koleksiyonu, onayı aşağıdaki çıktıda gösterilen sağlanan belgelerle birlikte eklenir. Sıralama sorgusu sonuçlarının işlevselliğini göstermek için bu toplama belgesini kullanacağız.









Örnek 1: MongoDB Sıralanmamış Koleksiyon

Arama sorgusu find() yöntemiyle yürütüldüğünde, her zaman sıralanmamış bir belge koleksiyonu verir. Bu, aşağıda verilen sorgu sonuçlarıyla daha net olabilir.



>db.Employees.find({},{_id:0})

Burada find() metodu ile “Employee” koleksiyonuna ait bir sorgumuz var. find() yöntemi, boş parametreyi “_id:0” ile birlikte alır. Daha basit bir sonuç için, belge kimliği “_id:0” operatörü kullanılarak kaldırılır. Varsayılan olarak, find() yöntemiyle sorgu arandığında sıralanmamış koleksiyonlar elde ederiz. Aşağıda alınan çıktı, ekleme zamanında sahip olduğumuz şekilde tüm sıralanmamış belgelerdir.





Örnek 2: MongoDB Sorgu Sonuçlarını Artan Düzende Sırala

MongoDB'de sıralanmış koleksiyon, find() yönteminden sonra gelmesi gereken sort() yöntemi kullanılarak elde edilir. MongoDB'deki sort() yöntemi, alan adının içerdiği parametreyi ve belgeyi sıralama sırasını alır. Bu özel örnekte belgeleri artan sırada alacağız için alana parametre olarak “1” girmemiz gerekiyor. Sıralama sorgusunda aşağıdakiler artan düzende sonuçlanır.



>db.Employees.find().sort({ad:1})

Burada find arama sorgusundan sonra sort() yöntemini kullandık. sort() yöntemi, belirtilen alanın yanına '1' değeri yerleştirildiğinden, 'ad' alanını artan düzende sıralamak için kullanılır. sort() yöntemi herhangi bir parametrik değerle belirtilmezse koleksiyonun sıralanmayacağını unutmayın. sort() yönteminin çıktısı, varsayılan sırayla elde edilecektir. Sort() yönteminin ada göre artan sıralamadaki sonuçları aşağıdaki MongoDB kabuğunda görüntülenir.

Örnek 3: MongoDB Sorgu Sonuçlarını Azalan Düzende Sırala

Şimdi, MongoDB'nin sıralama sorgusu sonuçlarını azalan düzende gösteriyoruz. Bu tür bir sorgu, yukarıdaki örnekle aynıdır, ancak bir farkla. Azalan sıralama için sort() yöntemi, sütun adına göre '-1' değerini alır. Sıralama sorgusu sonuçları azalan düzende aşağıda verilmiştir.

>db.Employees.find({},{'email':1,_id:0}).sort({'email':-1})

Burada arama sorgusu “email” alanını bulan ve sadece “email” alanının değerlerini döndüren find() metodu ile başlar. Daha sonra “email” alanını sıralamak için kullanılan sort() metodunu belirledik ve yanındaki “-1” değeri elde edilen sıralama sonuçlarının azalan sırada olacağını belirtir. Azalan düzende sıralama sorgusu sonuçları, MongoDB kabuğunda yürütüldükten sonra getirilir.

Örnek 4: Birden Fazla Alan İçin MongoDB Sıralama Sorgusu Sonuçları

MongoDB'deki birden çok alanı sort() yöntemiyle sıralayabiliriz. Sıralanacak alanlar sort() yönteminde bildirilmelidir. Sıralama, alanların bildirim sırasına göre yapılır ve sıralama düzeni soldan sağa doğru incelenir. Birden çok alanı sıralama sorgusu şöyle görünmelidir:

>db.Employees.find({},{_id:0}).sort({'ad':1,'maaş':1})

Burada “name” ve “maaş” alanları sıralanacak şekilde sort() metodu ile geçilir. 'Çalışan' koleksiyonundaki 'ad' alanı, sort() yönteminin ilk bağımsız değişken alanı olduğu için önce sıralanır. Ardından, sort() yöntemi ikinci bağımsız değişken alanı olan 'maaş'ı sıralar. Her iki alanın sırası “1” şeklindedir, bu da sıralamanın artan sırada olacağını gösterir. Birden çok sıralama sorgusu alanı için çıktı, aşağıda belirtilen sıralama düzeninde oluşturulur.

Örnek 5: MongoDB Sorgu Sonuçlarını Limit Yöntemiyle Sırala

Ayrıca, sort() yöntemi, o arama sorgusuna göre sıralanan belgelerin sınırlı sayısını veren limit() yöntemiyle de birleştirilebilir. limit() yöntemi, parametre olarak çıktı kümesine dahil edilmesi gereken belge sayısını sınırlayan bir tamsayı gerektirir. Arama sorgusu, önce belgeyi sıralayan ve ardından belirtilen sınır belgeleri sağlayan aşağıda ayarlanır.

>db.Employees.find({},{_id:0}).sort({'department':1,'DOB':1}).limit(4).pretty()

Burada sort() metodunu kullanarak “department” sütunu ve ardından “DOB” sütunu için artan sırada sıralama işlemini başlatan arama sorgumuz var. Sıralama tamamlandığında, sınırlı belgeyi almak için limit() yöntemini yanına yerleştirdik. limit() yöntemine “4” sayısal değeri verilir; bu, aşağıdaki ekranda gösterildiği gibi çıktıda yalnızca dört sıralanmış belgeyi gösterdiği anlamına gelir:

Örnek 6: $sort Toplama ile MongoDB Sıralama Sorgusu Sonuçları

Yukarıdaki tüm örneklerde, sıralamayı MongoDB'nin sort() yöntemi ile gerçekleştirdik. MongoDB'de sıralamanın $sort toplamasıyla gerçekleştirilen başka bir yolu daha vardır. $sort operatörü, tüm giriş belgelerini sıralar ve ardından sıralanan belgeleri ardışık düzene döndürür. $sort operatörü aşağıdaki 'Çalışanlar' koleksiyonuna uygulanır.

db.Employees.aggregate([ { $sıralama : { maaş : 1, _id: -1 } } ])

Burada, içinde “$sort” operatörünü kullanabileceğimiz toplama yöntemini çağırdık. Ardından “maaş” sütununu artan düzende ve “id” sütununu azalan düzende sıralayan $sort operatör ifadesine sahibiz. Alana uygulanan $sort toplaması aşağıdaki sonuçları verir:

Örnek 6: MongoDB Sorgu Sonuçlarını Skip Yöntemiyle Sırala

sort() yöntemi, skip() yöntemiyle de eşleştirilebilir. Ortaya çıkan veri kümesi, skip() yöntemi kullanılarak yok sayılacak belirli sayıda belgeye sahip olabilir. Limit() yöntemi gibi, jump() yöntemi de atlanacak belge sayısını gösteren sayısal değeri kabul eder. Sıralama sorgusunda sort() yöntemini skip() yöntemiyle birleştirdik.

>db.Employees.find({},{_id:0}).sort({'maaş':1}).skip(4).pretty()

Burada sort() metodunun yanında skip() metodunu kullandık. sort() yöntemi belgeleri sıraladığında, sıralama çıktısını sort() yöntemine iletir. Bundan sonra, atlama() yöntemi, sıralanan ilk dört belgeyi koleksiyondan kaldırdı.

Çözüm

Makale, MongoDB'deki sıralama sorgusu sonuçları hakkındadır. Kayıtları belirli bir sırayla düzenleyen sort() yöntemini bu amaçla kullandık. Çeşitli alanlarda çoklu sıralama için sort() yöntemini de kullandık. Daha sonra sort() yöntemi, bu işlemler kullanılarak sıralanan belgelere limit() ve jump() yöntemleriyle eşleştirilir. Ek olarak, MongoDB'de sıralama sorgu sonuçları için $sort toplamasını sağladık.