MongoDB $Min Operatörü

Mongodb Min Operatoru



Veritabanlarının veya programlamanın yeni bir kullanıcısı değilseniz, karşılaştırma işleçlerini kullanan programları ve sorguları denemiş olmalısınız – büyüktür, küçüktür, eşittir vb. belirli bir alan kaydını güncellemek veya veritabanına yeni bir kayıt eklemek için “$min” ve “$max” gibi karşılaştırma operatörlerini kullanarak da aynı sonucu elde edebiliriz. MongoDB'de, yeni bir değer zaten girilen değerden küçük olduğunda belirli bir alanı güncellemek için birçok işlev sorgusunda “$min” operatörü kullanılabilir. Ayrıca, bir koleksiyonun kayıtlarını belirli bir sırada gruplandırmak ve görüntülemek için de kullanılabilir. Bu kılavuz, MongoDB'de '$min' operatörünü devre dışı bırakmanın farklı yollarıyla size yardımcı olur.

Örnek 1:

İlk çizimden başlayarak, Windows sistemindeki MongoDB kabuk aracını kullanarak zaten eklenmiş bir kaydı güncellemek için MongoDB'deki “$min” operatörünün kullanımını gösteriyoruz. Bu nedenle, veritabanınıza önceden eklenmiş bazı kayıtlarınız olmalıdır. Bu nedenle, bir 'test' veritabanının 'sipariş' koleksiyonuna toplam 5 kayıt eklemek için insertMany() işlev sorgusunu kullanıyoruz. Aşağıdaki çizimde gösterilen eklenen kayıtların her biri toplam 4 alan içerir - kimlik, başlık, satış fiyatı ve vergi. Bu 5 kayıt verisi, ekteki çıktıya göre başarıyla eklenir:

Ölçek > db.order.insertMany ( [ { 'İD' :01, 'Başlık' : 'Sabun' , 'Satış ücreti' : 500 , 'Vergi' : 24 } ,
... { 'İD' :02, 'Başlık' : 'şampuan' , 'Satış ücreti' : 700 , 'Vergi' : 27 } ,
... { 'İD' :03, 'Başlık' : 'Deterjan' , 'Satış ücreti' : 400 , 'Vergi' : 22 } ,
... { 'İD' :04, 'Başlık' : 'Parfüm' , 'Satış ücreti' : 900 , 'Vergi' : 30 } ,
... { 'İD' :05, 'Başlık' : 'Sis' , 'Satış ücreti' : 850 , 'Vergi' : 27 } ] )







Bir 'test' veri tabanında eklenen kayda bakmanın zamanı geldi. Bunun için “db” komutunda “printjson”u argüman olarak alarak “find()” metodunu “forEach” metoduyla birlikte atmanız gerekir. “order” adlı koleksiyonu kullanarak ekranda görüntülenen bir kaydımız var.



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



Yeni oluşturulan 'order' koleksiyonundan tek bir kaydı güncellemek için 'updateOne' işlev sorgusunda '$min' operatörünü kullanmanın tam zamanı. 'id' alanı, bir veritabanından belirli bir kaydı güncellemek için benzersiz bir tanımlayıcı olarak kullanılırken, '$min' operatörü, zaten girilen değerden daha azsa değerini 600 olarak güncellemek için 'SalePrice' alanına uygulanır. Çıktı mesajı, sorgunun başarılı olduğunu ancak güncelleme yapılmadığını gösterir.





Ölçek > db.order.updateOne ( { İD: 3 } , { $dk : { Satış ücreti: 600 } } )

3. kaydın “SalePrice” alanına güncelleme yapılmamasının nedeni “600” den küçük “400” değerini içermesidir. Bu nedenle, '$min' operatörü, aşağıdaki ekli find() sorgusuna göre minimum '400' değerini daha büyük bir '600' değeriyle güncellemez:



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

Bu sefer farklı bir çıktı almak için güncelleme sorgusunda küçük bir değişiklik yapalım. Tek bir '3' kaydını değiştirmek için içindeki 'updateOne' işlevini kullanan aynı 'db' komutunu kullanıyoruz. “SalePrice” alanına “300” değeri zaten girilen değerden küçükse değerini “300” olarak ayarlamak için “$min” operatörü uygulanır. SalePrice alanına zaten girilen “400” değerinin, karşılaştırılacak yeni “300” değerinden büyük olduğunu biliyoruz. Yani bu kez “400” yerine “300” yazmaktadır. Çıkış mesajı, bu sorgunun başarıyla yürütüldüğünü gösterir. Değiştirilen sayı = 1, 1 kaydın değiştirildiği anlamına gelir.

Ölçek > db.order.updateOne ( { İD: 3 } , { $dk : { Satış ücreti: 300 } } )

MongoDB kabuğundaki “find()” fonksiyon talimatı ile “test” veri tabanından bir “order” koleksiyonunun kayıtlarını JSON formatında görüntüledikten sonra 3. kaydın başarıyla güncellendiğini gördük. “SalePrice” alanındaki 400 değeri 300 değeri ile değiştirilir.

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

Örnek 2:

Bu MongoDB çiziminde, belirli bir veritabanının kayıtlarını, kayıtlardaki minimum değere göre “$min” operatörüne göre gruplayarak getiriyoruz. MongoDB'nin 'test' veritabanının 'sipariş' koleksiyonunda aynı 5 kayda sahip olduğunuzu ve bir 'test' veritabanının belirli alanlarında bazı yinelenen verilere sahip olmanız gerektiğini varsayalım. Bunun için “test” veritabanının “order” koleksiyonuna daha fazla kayıt ekliyoruz. Bu kez, 'Başlık' alanı için yinelenen değerleri ekliyoruz. Benzersiz değerlerden oluşan bir grup oluşturmak için '$group' yan tümcesinde kullanılır. Aşağıdaki çıktı, 'test' veritabanı için yeni eklenen 3 kaydı daha görüntüler. Artık 'sipariş' koleksiyonu, 5 eski kayda kıyasla 'Başlık' alanı için yinelenen değerlere sahip. Gerisi aynı şeyi kullanır.

“Test” veri tabanının “order” koleksiyonunda toplam 8 kayıt bulunduktan sonra, MongoDB'nin $min operatörünü başka bir alana göre gruplanmış belirli bir alan üzerinde uyguladıktan sonra test etme zamanı. Ekteki toplama komutu tamamen bununla ilgilidir. “db” anahtar sözcüğü ile başlar, ardından belirli bir veritabanındaki koleksiyonun adı ve agrega() işlevi gelir. Toplama işlevi, MongoDB'nin burada özellikle 'Title' alanının benzersiz bir anahtar olarak alındığı 'test' veritabanının 'Title' alanıyla ilgili bir gruptaki verileri görüntülemek için kullanılan $group yan tümcesinin kullanılmasıyla başlar. .

Aynı zamanda kendisine uygulanan “$min” operatörü ile aynı kayıtların toplamından sadece minimum değer kaydını alan fiyat alanı ayrı ayrı başlatılır. Bu sorgu yürütmenin çıktısı, fiyat bölümünde küçük bir güncelleme ile 5 kaydın görüntülenmesini gösterir. Tekrarlanan kayıtların görüntülenmediğini görebilirsiniz. Bazı benzersiz ve en küçük değer kayıtları burada görüntülenir.

Ölçek > db.order.aggregate ( [ { $ grubu : { _İD: ' $Başlık ' , fiyat: { $dk : ' $ Satış Fiyatı ' } } } ] )

Çözüm

Bu kılavuz, “$min” operatörünü kullanmanın mümkün olan basit bir yolunu göstermek için bir MongoDB çizimleri koleksiyonudur. Giriş paragrafı, MongoDB'deki kullanım amacını tartışmak için kullanılır. Bu makalenin ilk bölümü, “$min” operatörünün bir veritabanındaki tek bir kayıt için nasıl çalıştığını ve çalışmadığını, yani bir kaydı minimum değer olarak güncellemek veya eklemek için nasıl çalıştığını tartışıyor. Ayrıca, son örnekler, koleksiyon kaydını veritabanı boyunca benzersiz olarak gruplandırmak için kullanımını göstermektedir.