MongoDB $ Maks Operatörü

Mongodb Maks Operatoru



MongoDB, kayıtları güncellemek, yeni bir kayıt eklemek, kayıtları belirli bir koşul altında görüntülemek gibi özel amaçlı işlemleri gerçekleştirmek için birçok operatör bulmuştur. Bu operatörlerden biri de kayıttaki en büyük değeri kontrol etmek için kullanılan “$max” operatörüdür. Bunun dışında “update” fonksiyon talimatında karşılaştırdıktan sonra en küçük değeri yeni bir en büyük değerle güncellemek için kullanabiliriz. “$max” operatörünün diğer kullanımı, belirli bir koleksiyonun kayıtlarını, veritabanında bazı yinelenen kayıtlar olduğunda en küçük değeri yok sayarken yalnızca en büyük değeri gösterebilecek şekilde gruplandırmak ve görüntülemektir. Bu kılavuzda, Windows platformumuzda MongoDB komut satırı yardımcı programında “$max” operatörünün daha önce belirtilen kullanımlarını tartışmak için basit sorgu örnekleri kullanacağız.

Örnek 1:

Çizimden başlayarak ve '$max' operatörünün MongoDB kabuğunda nasıl çalıştığını tartışarak, 'data' adında ve önceden oluşturulmuş olması gereken bir koleksiyona ihtiyacımız var. Bu koleksiyonu oluşturmak için, herhangi bir 'oluştur' talimatı kullanmadan doğrudan içine bazı kayıtlar eklemeliyiz. Bir koleksiyon oluşturmak ve içindeki kayıtları eklemek için insert komutu yeterlidir. Her biri farklı türde 4 alana sahip dört kayıt eklemek için sorguda “insertMany” işlevini kullanıyoruz.

Ölçek > db.data.insertMany ( [ { 'İD' : bir , 'İsim' : 'Bravo' , 'Maaş' : 65000 , 'Yaş' : 44 } ,
... { 'İD' : 2 , 'İsim' : 'Stephen' , 'Maaş' : 77000 , 'Yaş' : 55 } ,
... { 'İD' : 3 , 'İsim' : 'Maria' , 'Maaş' : 42000 , 'Yaş' : 27 } ,
... { 'İD' : 4 , 'İsim' : 'Hawkin' , 'Maaş' : 58000 , 'Yaş' : 33 } ] )







Insert komutu başarılıdır ve çıktı mesajı kayıtların eklendiğini gösterir.



Kayıtları MongoDB'mizin 'veri' koleksiyonuna ekledikten sonra, bu kayıtları kabukta görme zamanı. Böylece, sonucu JSON formatında görüntülemek için printjson argümanını alarak MongoDB Cli'de “find()” fonksiyon talimatını ve ardından “forEach()” fonksiyonunu çalıştırıyoruz. Kabukta görüntülenen sonuç, koleksiyonda aşağıdaki çıktı görüntüsünde gösterilen toplam 4 belgeyi gösterir:



Ölçek > db.data.find ( ) .her biri için ( baskıjson )





Halihazırda eklenmiş kayıtları değiştirmek için MongoDB'nin update komutundaki “$max” operatörünü deneyelim. Bu nedenle, updateOne() burada, 'id' alanının '2' değerine sahip olduğu belirli bir kayıt gibi 'veri' koleksiyonunun yalnızca tek bir kaydını değiştirmek için kullanılır. “Veri” toplamanın “Salary” alanına “$max” operatörü uygulanarak “Maaş” alanının 55000'den büyük bir değere sahip olup olmadığı kontrol edilir. Değilse, kaydı 55000 ile güncelleyin. Bunun için çıktı sonucu Bir '0' değişiklik sayısını '2' kaydı olarak gösteren updateOne() işlev sorgusu, 55000'den az maaş değerine sahiptir.

Ölçek > db.data.updateOne ( { İD: 2 } , { $maks : { Maaş: 55000 } } )



Bu güncellemeden sonra, değiştirilen sonucu MongoDB komut satırı kabuğunda görüntülemek için aynı 'find()' işlev sorgusunu deniyoruz. Ancak 'güncelleme' komutunu kullanmadan önce aldığımız çıktının aynısını elde ederiz. 77000 değeri 55000'den büyük olduğu için değişiklik olmadı.

Ölçek > db.data.find ( ) .her biri için ( baskıjson )

Küçük bir değişiklikle aynı updateOne() sorgusunu bir kez daha deneyelim. Bu sefer “data” koleksiyonunun “Maaş” alanında bulunan “77000” değerinden daha büyük olan “85000” değerini çıktımızda bir fark yaratmak için deniyoruz. Çıktı, bu sorgudaki '$max' operatörü nedeniyle karşılaştırma yapıldıktan sonra, '85000' değeri, alanda zaten bulunan '77000' değerinin yerini aldığından, değişiklik sayısını '1' olarak gösterir.

Ölçek > db.data.updateOne ( { İD: 2 } , { $maks : { Maaş: 85000 } } )

MongoDB'nin '$max' operatörü aracılığıyla daha küçük olan '77000' değerini yeni bir değer olan '85000' ile başarıyla değiştirdikten sonra, nihayet bu güncellemeyi kontrol etmek için 'db' talimatındaki 'find()' işlevini kullanıyoruz, başarıyla güncellenip güncellenmediği. Çıktı, bu koleksiyondaki 2. kaydın 'Maaş' alanındaki değerin mükemmel bir şekilde güncellendiğini gösterir.

Ölçek > db.data.find ( ) .her biri için ( baskıjson )

Örnek 2:

MongoDB'de “$max” operatörünü kullanmak için başka bir örneğe geçelim. Bu sefer, aynı alan değerleri için herhangi bir yineleme varsa, bir koleksiyonun benzersiz kayıtlarını gruplandırmak ve görüntülemek için “$max” operatörünü bırakıyoruz. Bunun için bir “test” veritabanının “veri” koleksiyonuna 2 kayıt daha ekliyoruz. Bu kayıtlar, 'Ad' alanında, önceden eklenmiş 4 kayıtta da bulunan aynı 2 değeri içerir ve geri kalanı farklıdır. Kayıtları eklemek için, 'veri' koleksiyonunun güncellenmesi için 'insertMany' işlevini içeren aynı 'db' komutunu kullanıyoruz.

Ölçek > db.data.insertMany ( [ { 'İD' : 5 , 'İsim' : 'Bravo' , 'Maaş' : 35000 , 'Yaş' : Dört beş } ,
{ 'İD' : 6 , 'İsim' : 'Hawkin' , 'Maaş' : 67000 , 'Yaş' : 33 } ] )

Talimat başarıyla yürütülür.

Artık 2 yeni kayıt eklendiğine göre, 'db' komutundaki aynı 'find' işlevini ve ardından 'forEach' işlevini kullanarak bunları da görüntüleyebilirsiniz. Görüntüdeki aşağıdaki ekran çıktısı, bu koleksiyonun sonundaki 2 yeni kaydı gösterir:

Ölçek > db.data.find ( ) .her biri için ( baskıjson )

“Veri” toplamanın 6 kaydını görüntüledikten sonra, üzerinde toplama işlevini gerçekleştirmeye hazırız. Bu nedenle, aşağıdaki listelenen sorguda 'toplama' işlevi kullanılır. Bu işlevle, bir 'veri' koleksiyonunun kaydını 'id' ve 'Salary' alanlarının benzersiz adlarına göre gruplandırmak için '$group' operatörünü kullanıyoruz. Kayıtların “Maaş” alanına “$max” operatörü maksimum değerlerin gelmesi için uygulanır. Bu gruplamanın görüntülenmesi için “id” olarak kullanılan “Name” alanındaki mükerrer isimlere göre Maaş” alanından en büyük değeri alın. Toplam 4 kayıt görüntülenir. En büyük değer görüntülenirken en küçük değer (yinelenen kayıtlardan) göz ardı edilir.

db.data.aggregate ( [ { $ grubu : { _İD: ' $İsim ' , Maaş: { $maks : ' $Maaş ' } } } ] )

Çözüm

Bu kılavuzun ilk paragrafı, MongoDB'de kullanılan operatörlerin önemini, özellikle '$max' operatörünü ve onun MongoDB kabuğundaki kullanımını anlamanıza yardımcı olur. Bu kılavuz, amacını göstermek için “$max” işleciyle ilgili iki komut tabanlı örnek içermektedir. MongoDB çizimlerini incelerken, ister halihazırda var olan bir kaydı yeni bir değerle değiştirmek olsun, ister kayıtları “$max” operatörü aracılığıyla gruplandırarak görüntülemek olsun, veritabanında bazı yararlı işlemler gerçekleştirebileceksiniz.