MongoDB ATAU Operator

Mongodb Atau Operator



Kami mempunyai operator pertanyaan logik yang berbeza yang tersedia dalam MongoDB, dan salah satunya ialah operator $or. Pengendali MongoDB $or digunakan untuk melaksanakan operasi OR logik pada tatasusunan yang mengandungi dua atau lebih ungkapan dan hanya mengambil dokumen yang sepadan dengan mana-mana satu ungkapan yang ditentukan dalam tatasusunan. Operator $or digunakan untuk mencari berbilang pernyataan dalam satu pertanyaan dengan hanya satu kriteria dokumen yang sepadan. Operator $or memudahkan gabungan beberapa kunci dan nilai.

Cara Menggunakan Operator OR dalam MongoDB

Operator OR dalam MongoDB diwakili dalam format '$or'. '$or' digunakan untuk melampirkan berbilang ungkapan dalam kurungan segi empat sama di mana operasi OR logik dilakukan. Kami menggunakan operator $or pada koleksi MongoDB. Kami mencipta koleksi MongoDB yang bertajuk 'Pesakit'. Koleksi 'Pesakit' disisipkan dengan berbilang dokumen di mana kami melaksanakan pengendali $or. Dokumen berikut dimasukkan dalam MongoDB dengan menggunakan kaedah insertMany() :

db.Pesakit.masukRamai ( [
{
'Nama pertama' : 'Jennifer' ,
'Nama terakhir' : 'Joshua' ,
'Umur' : 44 ,
'Nombor telefon' : 43400517 ,
'Temu janji' : 'Doktor gigi' ,
'Caj' : 2000 ,
'Ujian' : [ 'X-ray' , 'Darah' , 'Pulpal' ]
} ,
{
'Nama pertama' : 'Thomas' ,
'Nama terakhir' : 'Steven' ,
'Umur' : 74 ,
'Nombor telefon' : 39034694 ,
'Tarikh Temujanji' : 'Pakar Bedah' ,
'Caj' : 6000 ,
'Ujian' : [ 'Elektif' , 'PPT' ]
} ,
{
'Nama pertama' : 'Charles' ,
'Nama terakhir' : 'Daniel' ,
'Umur' : 35 ,
'Nombor telefon' : 65712165 ,
'Temu janji' : 'Doktor Kardiologi' ,
'Caj' : 2000 ,
'Ujian' : [ 'CT' , 'MRI' ]
} ,
{
'Nama pertama' : 'Michelle' ,
'Nama terakhir' : 'Paul' ,
'Umur' : 51 ,
'Nombor telefon' : 54399288 ,
'Temu janji' : 'Pakar Kulit' ,
'Caj' : 8000 ,
'Ujian' : [ 'Biopsi Kulit' , 'Cahaya Kayu' , 'Mengikis Kulit' ]
} ,

{
'Nama pertama' : 'Andrew' ,
'Nama terakhir' : 'Jerry' ,
'Umur' : 69 ,
'Nombor telefon' : 6108100 ,
'Temu janji' : 'Doktor Kardiologi' ,
'Caj' : 7000 ,
'Ujian' : [ 'ECG' , 'Glukosa darah' , 'Ultrasound' ]
}
] )

Output dokumen yang dimasukkan sebelum ini mengakui 'benar' dan memberikan nilai 'insertedIds' untuk setiap dokumen.









Contoh 1: Operator MongoDB $OR untuk Memadankan Dokumen

Pertanyaan asas pengendali MongoDB $or dilaksanakan di sini yang menunjukkan kerja operator ini dalam MongoDB. Di sini, kami mentakrifkan pertanyaan dengan kaedah find(). Kaedah find() ditentukan selanjutnya dengan operator $or. Operator $or mengambil dua medan, 'Temu janji' dan 'Caj', yang ditetapkan dengan nilai. Operator $or memadankan nilai medan dan mengambil hanya dokumen yang nilainya dipadankan dengan nilai medan. Struktur pertanyaan pengendali $or disediakan dalam perkara berikut:



db.Pesakit.cari ( { $or : [ { Pelantikan: 'Pakar Kulit' } ,
{ Caj: 7000 } ] } ) .cantik ( )

Kami mengambil dokumen yang 'Temu janji' dengan 'Pakar Kulit' dan 'Caj'nya ialah '7000'. Operator $or mencari hasil yang benar daripada kedua-dua nilai medan dan mengembalikan dokumen yang dipadankan dalam output.





Contoh 2: Operator MongoDB $OR untuk Memadankan Dokumen Tidak Wujud

Dalam pertanyaan sebelumnya operator $or, kami telah mengambil dokumen yang dipadankan. Kini, kami mendapatkan semula dokumen yang tidak wujud daripada koleksi 'Pesakit'. Pertanyaan $or operator berikut mengambil dokumen yang 'Nama Pertama' ialah 'Charles' dan 'Temujanji' adalah dengan 'Doktor'. Operator $or memadankan nilai medan ini dalam koleksi 'Pesakit' dan menjana keputusan selepas pemadanan.



db.Pesakit.cari ( { $or : [ { 'Nama pertama' : 'Charles' } , { 'Temu janji' : 'Doktor' } ] } ) .cantik ( )

Operator $or mempunyai satu hasil yang benar dan satu lagi mempunyai hasil yang salah. Memandangkan kami menentukan 'Temujanji' dengan nilai 'Doktor' yang tidak sepadan dengan mana-mana dokumen dalam koleksi 'Pesakit'. Itulah sebabnya, operator $or hanya mengembalikan dokumen medan yang dipadankan iaitu 'Pesakit' sebagai output.

Contoh 3: Operator MongoDB $OR dengan Pelbagai Argumen

Kami menyediakan dua hujah dalam pertanyaan $or operator sebelumnya. Di sini, kami lulus lebih daripada dua hujah sebagai ungkapan $or operator. Kami mendapatkan semula dokumen yang sepadan dengan mana-mana nilai medan 'Umur' yang diberikan kepadanya. Keperluan operator $or adalah sama untuk berbilang argumen bahawa salah satu ungkapan harus benar. Pertanyaan untuk berbilang argumen dalam operator $or diberikan seperti berikut:

db.Pesakit.cari ( { 'Temu janji' : 'Doktor Kardiologi' , $or : [ { 'Umur' : dua puluh } , { 'Umur' : 35 } , { 'Umur' : 69 } ] } )

Di sana, kami mempunyai dua keputusan sepadan yang diperoleh daripada operator $or. Nilai 'Umur' iaitu '35' dan '69' dibandingkan dengan dokumen 'Pesakit' yang diperolehi oleh operator $or dan dipaparkan pada shell.

Contoh 4: Pengendali $OR MongoDB dengan Pengagregatan

Kaedah agregat dalam MongoDB menggabungkan rekod ke dalam koleksi. Oleh itu, ia boleh digunakan untuk operasi yang berbeza. Kami melaksanakan operator $or dalam kaedah pengagregatan yang menilai satu atau lebih ungkapan dan mengembalikan benar jika mana-mana daripadanya menilai kepada benar. Jika tidak, kenyataan itu dianggap sebagai palsu.

Mari kita mempunyai pertanyaan operator $or aggregation di mana kita mula-mula menggunakan kaedah aggregate() yang kemudiannya menggunakan $match dan $project yang ditentukan dengan nilai _id untuk dipadankan daripada dokumen. Kemudian, kami menetapkan medan 'Umur' dengan nilai '1' kerana kami hanya mahu medan ini dijana daripada semua dokumen. Selepas itu, kami mentakrifkan atribut 'Results' yang mempunyai operasi $or. Operator $or mengambil pernyataan bersyarat $gt. Ungkapan “$gt:[“$Age”, 69]” memberikan umur yang nilainya lebih besar daripada “69”. Keputusan untuk ungkapan ini dihantar kepada operator $or dan operator $or mengembalikan dokumen yang memenuhi syarat yang ditentukan.

db.Pesakit.agregat (
[
{ $perlawanan : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projek : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
umur: satu ,
Keputusan: { $or : [
{ $gt : [ ' $Umur ' , 69 ] }
] }
}
}
]
)

'Umur' yang lebih besar daripada '69' ialah '74' yang dipaparkan dalam cangkang keluaran bersama-sama dengan 'Keputusan' yang mempunyai nilai 'benar'.

Contoh 5: Operator MongoDB $OR Mendapat Syarat

Pengendali $or MongoDB ialah pengendali logik. Kita boleh menggunakan operator logik ini dengan operator bersyarat. Operator $or mengembalikan keputusan apabila syarat dipenuhi. Selain itu, kita boleh menggunakan lebih daripada satu syarat dalam operator $or yang mana satu syarat mesti benar. Di sini, kami mempunyai pertanyaan $or operator yang ditentukan dengan dua syarat berbeza. Syarat pertama ialah '{Caj:{$lt: 6000}}' yang mengembalikan dokumen yang kurang daripada nilai 'Caj' '6000'. Syarat {Caj:“$gt: 7000”} mendapat dokumen yang lebih besar daripada nilai 'Caj' '7000'.

Operator $or memberikan dokumen yang dipadankan apabila syarat ini dipenuhi. Kemudian, kami menentukan nama medan yang hanya ditunjukkan apabila operator $or memberikan dokumen yang dipadankan.

db.Pesakit.cari ( {
$or : [
{ Caj: { $lt : 6000 } } ,
{ Caj: { $gt : 7000 } }
]
} , {
Nama pertama: satu ,
Caj: satu
} )

Output hanya memaparkan medan 'Nama Pertama' dan 'Caj' untuk dokumen yang dipadankan.

Contoh 6: Pengendali $OR MongoDB tanpa Argumen

Semua pertanyaan yang dilaksanakan dengan operator $or dihantar dengan nilai argumen. Sekarang, kami mentakrifkan pertanyaan operator $or yang tidak memasukkan hujah. Apabila argumen kosong $or pertanyaan operator dilaksanakan, ia menilai keputusan palsu. Kami memberikan pertanyaan di mana operasi $or diluluskan dengan ungkapan kosong.

db.Pesakit.agregat (
[
{ $perlawanan : { _ID: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projek : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Keputusan: { $or : [ ] } }
}
]
)

Akibat daripada operator $or dibekalkan dengan hujah kosong, hasil menyatakan nilai palsu.

Contoh 7: Operator MongoDB $OR Memadankan Nilai Tatasusunan

Kami memasukkan tatasusunan 'Ujian' dalam dokumen yang mempunyai nilai yang berbeza. Kami menggunakan tatasusunan itu untuk operator $or untuk memeriksa keputusan. Operator $or dalam pertanyaan berikut digunakan dalam kaedah find(). Operator $or mengambil tatasusunan 'Ujian' sebagai ungkapan. Tatasusunan 'Ujian' menggunakan operator $in untuk mengenal pasti dokumen yang nilai medannya sepadan dengan nilai 'MRI' dan 'CT' dalam tatasusunan.

db.Pesakit.cari ( { $or : [ { Ujian: { $in : [ 'MRI' , 'CT' ] } } ] } ) .cantik ( )

Satu dokumen dipaparkan pada shell apabila operator $or query dilaksanakan yang menunjukkan bahawa dokumen yang diambil mengandungi nilai tatasusunan yang ditentukan.

Kesimpulan

Artikel MongoDB ini menggambarkan penggunaan pertanyaan operator MongoDB $or untuk melaksanakan operasi OR logik pada tatasusunan yang merangkumi dua atau lebih ungkapan serta untuk mendapatkan semula dokumen yang sepadan dengan sekurang-kurangnya satu ungkapan. Operator $or disoal dalam cangkerang MongoDB untuk melaksanakan operasi yang berbeza. Operator $or digunakan dalam operator bersyarat sebagai ungkapan dan mengembalikan dokumen berdasarkan pernyataan bersyarat.