MongoDB OR Operatörü

Mongodb Or Operatoru



MongoDB'de bulunan farklı mantıksal sorgu işleçlerimiz var ve bunlardan biri $veya işlecidir. MongoDB $veya operatörü, iki veya daha fazla ifade içeren bir dizide mantıksal OR işlemi uygulamak ve yalnızca dizide belirtilen ifadelerden herhangi biriyle eşleşen belgeleri almak için kullanılır. $veya işleci, yalnızca bir eşleşen belge kriteri ile tek bir sorguda birden çok ifadeyi bulmak için kullanılır. $veya operatörü, birkaç anahtar ve değerin kombinasyonunu kolaylaştırır.

MongoDB'de OR Operatörü Nasıl Kullanılır?

MongoDB'deki OR operatörü “$or” biçiminde temsil edilir. “$veya”, üzerinde mantıksal OR işleminin gerçekleştirildiği birden çok ifadeyi köşeli parantez içine almak için kullanılır. MongoDB koleksiyonunda $veya operatörünü kullanıyoruz. “Hastalar” başlıklı MongoDB koleksiyonunu oluşturuyoruz. 'Hastalar' koleksiyonu, üzerinde $veya işlecini gerçekleştirdiğimiz birden çok belgeyle birlikte eklenir. Aşağıdaki belgeler, insertMany() yöntemi çağrılarak MongoDB'ye eklenir:

db.Patients.insertMany ( [
{
'İlk adı' : 'Jennifer' ,
'Soy isim' : 'Yeşu' ,
'Yaş' : 44 ,
'Telefon numarası' : 43400517 ,
'Randevu' : 'Dişçi' ,
'Ücretler' : 2000 ,
'Ölçek' : [ 'Röntgen' , 'Kan' , 'Pulpa' ]
} ,
{
'İlk adı' : 'Thomas' ,
'Soy isim' : 'Steven' ,
'Yaş' : 74 ,
'Telefon numarası' : 39034694 ,
'Randevu Tarihi' : 'Cerrah' ,
'Ücretler' : 6000 ,
'Ölçek' : [ 'Seçmeli' , 'PPT' ]
} ,
{
'İlk adı' : 'Charles' ,
'Soy isim' : 'Daniel' ,
'Yaş' : 35 ,
'Telefon numarası' : 65712165 ,
'Randevu' : 'kardiyoloji doktoru' ,
'Ücretler' : 2000 ,
'Ölçek' : [ 'CT' , 'MR' ]
} ,
{
'İlk adı' : 'Michelle' ,
'Soy isim' : 'Paul' ,
'Yaş' : 51 ,
'Telefon numarası' : 54399288 ,
'Randevu' : 'Dermatolog' ,
'Ücretler' : 8000 ,
'Ölçek' : [ 'Deri Biyopsileri' , 'Ahşap Işık' , 'Deri Kazıma' ]
} ,

{
'İlk adı' : 'Andrew' ,
'Soy isim' : 'Jerry' ,
'Yaş' : 69 ,
'Telefon numarası' : 6108100 ,
'Randevu' : 'kardiyoloji doktoru' ,
'Ücretler' : 7000 ,
'Ölçek' : [ 'EKG' , 'Kan şekeri' , 'Ultrason' ]
}
] )

Önceden eklenen belgelerin çıktısı 'true' değerini onaylar ve her belge için 'insertedIds' değerlerini sağlar.









Örnek 1: Belgeleri Eşleştirecek MongoDB $OR Operatörü

MongoDB $veya işlecinin temel sorgusu burada uygulanır ve bu işlecin MongoDB'de çalıştığını gösterir. Burada find() metodu ile bir sorgu tanımlıyoruz. find() yöntemi ayrıca $veya operatörüyle belirtilir. $veya operatörü, değerlerle atanan 'Randevu' ve 'Ücretler' olmak üzere iki alan alır. $or operatörü, alan değeriyle eşleşir ve yalnızca değerleri alan değerleriyle eşleşen belgeleri alır. $veya operatörünün sorgu yapısı aşağıda verilmiştir:



db.Patients.find ( { $ veya : [ { Randevu: 'Dermatolog' } ,
{ Masraflar: 7000 } ] } ) .tatlı ( )

“Randevu”su “Dermatolog” olan ve “Ücreti” “7000” olan evrakları getiriyoruz. $veya operatörü, her iki alan değerinden de doğru sonuçları bulur ve eşleşen belgeleri çıktıda döndürür.





Örnek 2: Var Olmayan Belgeleri Eşleştirecek MongoDB $OR Operatörü

$veya operatörünün önceki sorgusunda, eşleşen belgeleri getirdik. Şimdi, var olmayan belgeyi 'Hasta' koleksiyonundan alıyoruz. Aşağıdaki $or operatör sorgusu “FirstName” “Charles” ve “Randevu” “Doktor” ile olan belgeyi alır. $veya operatörü, 'Hastalar' koleksiyonundaki bu alan değerlerini eşleştirir ve eşleştirmeden sonra sonuçları oluşturur.



db.Patients.find ( { $veya : [ { 'İlk adı' : 'Charles' } , { 'Randevu' : 'Doktor' } ] } ) .tatlı ( )

$veya operatörünün bir doğru sonucu var ve diğerinin yanlış sonucu var. 'Randevu'yu 'Hasta' koleksiyonundaki hiçbir belgeyle eşleşmeyen 'Doktor' değeriyle belirttiğimiz gibi. Bu nedenle, $veya operatörü yalnızca eşleşen alanın “Patient” olan belgesini çıktı olarak döndürür.

Örnek 3: Birden Çok Bağımsız Değişkene Sahip MongoDB $OR Operatörü

Önceki $veya operatör sorgularında iki argüman sağladık. Burada, ikiden fazla argümanı $ veya operatör ifadesi olarak iletiyoruz. Kendisine verilen 'Yaş' alan değerlerinden herhangi biriyle eşleşen belgeyi alıyoruz. $veya operatör gereksinimi, ifadelerden birinin doğru olması gereken çoklu bağımsız değişkenler için aynıdır. $veya işlecindeki birden çok bağımsız değişken için sorgu şu şekilde verilir:

db.Patients.find ( { 'Randevu' : 'kardiyoloji doktoru' , $veya : [ { 'Yaş' : yirmi } , { 'Yaş' : 35 } , { 'Yaş' : 69 } ] } )

Orada, $ veya operatöründen elde edilen iki eşleşen sonucumuz var. “35” ve “69” olan “Age” değerleri, $veya operatörü tarafından elde edilen ve kabukta görüntülenen “Hastalar” belgeleri ile karşılaştırılır.

Örnek 4: Toplamalı MongoDB $OR Operatörü

MongoDB'deki toplama yöntemi, kayıtları bir koleksiyonda birleştirir. Bu nedenle, farklı işlemler için kullanılabilirler. Bir veya daha fazla ifadeyi değerlendiren ve bunlardan herhangi biri doğru olarak değerlendirilirse doğru döndüren toplama yönteminde $veya işlecini gerçekleştiririz. Aksi takdirde, ifade yanlış olarak kabul edilir.

Belgeden eşleştirilecek _id değeriyle belirtilen $match ve $project'i konuşlandıran agrega() yöntemini ilk olarak çağırdığımız $veya toplama işleci sorgusuna sahip olalım. Ardından “Age” alanını “1” değeri ile ayarlıyoruz çünkü bu alanın sadece tüm belgelerden oluşmasını istiyoruz. Daha sonra $or işlemine sahip “Results” niteliğini tanımlıyoruz. $veya operatörü, $gt'nin koşullu ifadesini alır. “$gt:[“$Age”, 69]” ifadesi, değeri “69”dan büyük olan yaşı verir. Bu ifadenin sonuçları $veya operatörüne iletilir ve $or operatörü belirtilen koşulu karşılayan belgeyi döndürür.

db.Patients.aggregate (
[
{ $eşleşme : { _id: Nesne Kimliği ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $ proje : {
_id: Nesne Kimliği ( '6391c61a4c91e007fb4f0227' ) ,
Yaş: bir ,
Sonuç: { $veya : [
{ $gt : [ ' $Yaş ' , 69 ] }
] }
}
}
]
)

“69”dan büyük olan “Yaş”, “true” değerine sahip olan “Results” ile birlikte çıktı kabuğunda görüntülenen “74”tür.

Örnek 5: MongoDB $OR Operatörü Koşulları Çalıştırır

MongoDB'nin $or operatörü mantıksal bir operatördür. Bu mantıksal operatörü koşullu operatörle birlikte kullanabiliriz. $veya operatörü, koşullar sağlandığında sonuçları döndürür. Ek olarak, $veya operatöründe birinin doğru olması gereken birden fazla koşul çağırabiliriz. Burada, iki farklı koşulla belirtilen bir $veya operatörü sorgumuz var. İlk koşul '{Masraflar:{$lt: 6000}}' olup, 'Masraflar' değeri olan '6000'den düşük olan belgeyi döndürür. {Masraflar:“$gt: 7000”} koşulu, “Masraflar” değeri olan “7000”den büyük olan belgeyi alır.

$veya operatörü, bu koşullar sağlandığında eşleşen belgeyi verir. Ardından, sadece $veya operatörü eşleşen belgeyi verdiğinde gösterilen alanların adlarını belirtiyoruz.

db.Patients.find ( {
$veya : [
{ Masraflar: { lt $ : 6000 } } ,
{ Masraflar: { $gt : 7000 } }
]
} , {
İlk adı: bir ,
Masraflar: bir
} )

Çıktı, eşleşen belgeler için yalnızca 'FirstName' ve 'Masraflar' alanlarını görüntüler.

Örnek 6: Argümansız MongoDB $OR Operatörü

$veya işleciyle uygulanan tüm sorgular, bağımsız değişken değeriyle iletilir. Şimdi, argüman girmeyen $ veya operatör sorgusunu tanımlıyoruz. Boş bağımsız değişken $ veya işleç sorgusu yürütüldüğünde, yanlış sonuçları değerlendirir. Boş ifade ile $veya işleminin geçtiği bir sorgu veriyoruz.

db.Patients.aggregate (
[
{ $eşleşme : { _İD: { $ in : [ Nesne Kimliği ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $ proje : {
_id: Nesne Kimliği ( '6391c61a4c91e007fb4f0227' ) ,
Sonuç: { $ veya : [ ] } }
}
]
)

$veya operatörü boş bir argüman ile sağlandığında, sonuçlar yanlış bir değer verir.

Örnek 7: MongoDB $OR Operatörü Dizi Değerlerini Eşleştiriyor

Farklı değerlere sahip belgelere “Test” dizisini ekliyoruz. Sonuçları incelemek için bu diziyi $veya operatörü için kullanırız. Aşağıdaki sorgudaki $veya işleci find() yöntemi içinde çağrılır. $veya operatörü, 'Test' dizisini bir ifade olarak alır. 'Test' dizisi, alan değerleri dizideki 'MRI' ve 'CT' değerleriyle eşleşen belgeleri tanımlamak için $in operatörünü kullanır.

db.Patients.find ( { $ veya : [ { Ölçek: { $ in : [ 'MR' , 'CT' ] } } ] } ) .tatlı ( )

Alınan belgenin belirtilen dizi değerlerini içerdiğini gösteren $ veya sorgu işleci yürütüldüğünde, kabukta bir belge görüntülenir.

Çözüm

Bu MongoDB makalesi, iki veya daha fazla ifade içeren bir dizide mantıksal OR işlemlerini yürütmek ve ifadelerden en az biriyle eşleşen belgeleri almak için bir MongoDB $veya operatör sorgusunun kullanımını gösterir. $veya operatörü, farklı işlemleri gerçekleştirmek için MongoDB kabuğunda sorgulanır. $veya operatörü, koşullu işleçlerde bir ifade olarak kullanılır ve koşullu ifadelere dayalı belgeleri döndürür.