Cara Menggunakan OR Operator di MongoDB
Operator ATAU di MongoDB direpresentasikan dalam format “$or”. '$or' digunakan untuk mengapit beberapa ekspresi dalam tanda kurung siku tempat operasi OR logis dilakukan. Kami menggunakan operator $or pada koleksi MongoDB. Kami membuat koleksi MongoDB yang berjudul 'Pasien'. Koleksi 'Pasien' disisipkan dengan beberapa dokumen tempat kami menjalankan operator $or. Dokumen-dokumen berikut dimasukkan ke dalam MongoDB dengan memanggil metode insertMany() :
db.Patients.insertMany ( [{
'Nama depan' : 'Jennifer' ,
'Nama keluarga' : 'Yosua' ,
'Usia' : 44 ,
'Nomor telepon' : 43400517 ,
'Janji temu' : 'Dokter gigi' ,
'Tagihan' : 2000 ,
'Tes' : [ 'sinar-X' , 'Darah' , 'Bubur' ]
} ,
{
'Nama depan' : 'Thomas' ,
'Nama keluarga' : 'Steven' ,
'Usia' : 74 ,
'Nomor telepon' : 39034694 ,
'Tanggal Janji' : 'Ahli bedah' ,
'Tagihan' : 6000 ,
'Tes' : [ 'Pilihan' , 'PPT' ]
} ,
{
'Nama depan' : 'Charles' ,
'Nama keluarga' : 'Daniel' ,
'Usia' : 35 ,
'Nomor telepon' : 65712165 ,
'Janji temu' : 'dokter jantung' ,
'Tagihan' : 2000 ,
'Tes' : [ 'CT' , 'MRI' ]
} ,
{
'Nama depan' : 'Michelle' ,
'Nama keluarga' : 'Paul' ,
'Usia' : 51 ,
'Nomor telepon' : 54399288 ,
'Janji temu' : 'Dermatolog' ,
'Tagihan' : 8000 ,
'Tes' : [ 'Biopsi Kulit' , 'Cahaya Kayu' , 'Pengikisan Kulit' ]
} ,
{
'Nama depan' : 'Andrew' ,
'Nama keluarga' : 'Jerry' ,
'Usia' : 69 ,
'Nomor telepon' : 6108100 ,
'Janji temu' : 'dokter jantung' ,
'Tagihan' : 7000 ,
'Tes' : [ 'EKG' , 'Gula darah' , 'USG' ]
}
] )
Output dari dokumen yang dimasukkan sebelumnya mengakui 'benar' dan memberikan nilai 'insertedIds' untuk setiap dokumen.
Contoh 1: MongoDB $OR Operator untuk Mencocokkan Dokumen
Permintaan dasar dari operator $or MongoDB diimplementasikan di sini yang menunjukkan cara kerja operator ini di MongoDB. Di sini, kami mendefinisikan kueri dengan metode find(). Metode find() ditentukan lebih lanjut dengan operator $or. Operator $or mengambil dua bidang, 'Janji Temu' dan 'Tagihan', yang ditetapkan dengan nilai. Operator $or mencocokkan nilai bidang dan hanya mengambil dokumen yang nilainya cocok dengan nilai bidang. Struktur kueri dari operator $or disediakan sebagai berikut:
db.Pasien.temukan ( { $atau : [ { Janji temu: 'Dermatolog' } ,
{ Biaya: 7000 } ] } ) .cukup ( )
Kami mengambil dokumen yang 'Janji Temu' dengan 'Dokter Kulit' dan yang 'Tagihannya' adalah '7000'. Operator $or menemukan hasil sebenarnya dari kedua nilai bidang dan mengembalikan dokumen yang cocok dalam keluaran.
Contoh 2: MongoDB $OR Operator untuk Mencocokkan Dokumen yang Tidak Ada
Dalam kueri operator $or sebelumnya, kami mengambil dokumen yang cocok. Sekarang, kami mengambil dokumen yang tidak ada dari koleksi 'Pasien'. Permintaan $or operator berikut mengambil dokumen yang 'FirstName' adalah 'Charles' dan 'Janji Temu' dengan 'Dokter'. Operator $or mencocokkan nilai bidang ini dalam koleksi 'Pasien' dan menghasilkan hasil setelah pencocokan.
db.Pasien.temukan ( { $atau : [ { 'Nama depan' : 'Charles' } , { 'Janji temu' : 'Dokter' } ] } ) .cukup ( )
Operator $or memiliki satu hasil yang benar dan yang lainnya memiliki hasil yang salah. Saat kami menentukan 'Janji Temu' dengan nilai 'Dokter' yang tidak cocok dengan dokumen apa pun dalam koleksi 'Pasien'. Itu sebabnya, operator $or hanya mengembalikan dokumen dari field yang cocok yaitu “Patient” sebagai output.
Contoh 3: MongoDB $OR Operator dengan Banyak Argumen
Kami menyediakan dua argumen dalam kueri operator $or sebelumnya. Di sini, kami memberikan lebih dari dua argumen sebagai ekspresi $or operator. Kami mengambil dokumen yang cocok dengan salah satu nilai bidang 'Umur' yang diberikan padanya. Persyaratan $or operator sama untuk beberapa argumen bahwa salah satu ekspresi harus benar. Kueri untuk beberapa argumen dalam operator $or diberikan sebagai berikut:
db.Pasien.temukan ( { 'Janji temu' : 'dokter jantung' , $atau : [ { 'Usia' : dua puluh } , { 'Usia' : 35 } , { 'Usia' : 69 } ] } )Di sana, kami memiliki dua hasil yang cocok yang diperoleh dari operator $or. Nilai 'Umur' yaitu '35' dan '69' dibandingkan dengan dokumen 'Pasien' yang diperoleh oleh operator $or dan ditampilkan di shell.
Contoh 4: MongoDB $OR Operator dengan Agregasi
Metode agregat di MongoDB menggabungkan record menjadi sebuah koleksi. Oleh karena itu, mereka dapat digunakan untuk operasi yang berbeda. Kami melakukan operator $or dalam metode agregasi yang mengevaluasi satu atau lebih ekspresi dan mengembalikan true jika salah satu dari ekspresi tersebut bernilai true. Jika tidak, pernyataan itu dianggap salah.
Mari kita minta kueri operator $or aggregation di mana kita pertama kali memanggil metode agregat() yang kemudian menerapkan $match dan $project yang ditentukan dengan nilai _id untuk dicocokkan dari dokumen. Kemudian, kami menetapkan bidang 'Umur' dengan nilai '1' karena kami hanya ingin bidang ini dihasilkan dari semua dokumen. Setelah itu, kita mendefinisikan atribut “Results” yang memiliki operasi $or. Operator $or mengambil pernyataan bersyarat dari $gt. Ekspresi “$gt:[“$Age”, 69]” memberikan usia yang nilainya lebih besar dari “69”. Hasil untuk ekspresi ini diteruskan ke operator $or dan operator $or mengembalikan dokumen yang memenuhi kondisi yang ditentukan.
db.Pasien.agregat ([
{ $ cocok : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $proyek : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Usia: satu ,
Hasil: { $atau : [
{ $gt : [ ' $Usia ' , 69 ] }
] }
}
}
]
)
'Usia' yang lebih besar dari '69' adalah '74' yang ditampilkan di shell keluaran bersama dengan 'Hasil' yang memiliki nilai 'benar'.
Contoh 5: MongoDB $OR Operator Memanggil Ketentuan
Operator $or dari MongoDB adalah operator logis. Kita dapat menggunakan operator logika ini dengan operator kondisional. Operator $or mengembalikan hasil ketika kondisi terpenuhi. Selain itu, kita dapat memanggil lebih dari satu kondisi di operator $or yang salah satunya harus benar. Di sini, kami memiliki kueri $or operator yang ditentukan dengan dua kondisi berbeda. Kondisi pertama adalah “{Biaya:{$lt: 6000}}” yang mengembalikan dokumen yang kurang dari nilai “Biaya” “6000”. Kondisi {Biaya:“$gt: 7000”} mendapatkan dokumen yang lebih besar dari nilai “Biaya” “7000”.
Operator $or memberikan dokumen yang cocok ketika kondisi ini terpenuhi. Kemudian, kami menentukan nama bidang yang hanya ditampilkan saat operator $or memberikan dokumen yang cocok.
db.Pasien.temukan ( {$atau : [
{ Biaya: { $lt : 6000 } } ,
{ Biaya: { $gt : 7000 } }
]
} , {
Nama depan: satu ,
Biaya: satu
} )
Keluaran hanya menampilkan bidang 'NamaDepan' dan 'Tagihan' untuk dokumen yang cocok.
Contoh 6: MongoDB $OR Operator Tanpa Argumen
Semua kueri yang diimplementasikan dengan operator $or diteruskan dengan nilai argumen. Sekarang, kita mendefinisikan kueri operator $or yang tidak memasukkan argumen. Ketika argumen kosong $or operator query dieksekusi, itu mengevaluasi hasil yang salah. Kami memberikan kueri di mana operasi $or diteruskan dengan ekspresi kosong.
db.Pasien.agregat ([
{ $ cocok : { _Indo: { $ masuk : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $proyek : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Hasil: { $atau : [ ] } }
}
]
)
Sebagai hasil dari $or operator diberikan dengan argumen kosong, hasilnya menyatakan nilai yang salah.
Contoh 7: MongoDB $OR Operator Mencocokkan Nilai Array
Kami memasukkan larik 'Uji' dalam dokumen yang memiliki nilai berbeda. Kami menggunakan array itu untuk operator $or untuk memeriksa hasilnya. Operator $or dalam kueri berikut dipanggil di dalam metode find(). Operator $or mengambil larik 'Test' sebagai ekspresi. Larik “Uji” menggunakan operator $in untuk mengidentifikasi dokumen yang nilai bidangnya cocok dengan nilai “MRI” dan “CT” dalam larik.
db.Pasien.temukan ( { $atau : [ { Tes: { $ masuk : [ 'MRI' , 'CT' ] } } ] } ) .cukup ( )Satu dokumen ditampilkan di shell ketika operator $or query dijalankan yang menunjukkan bahwa dokumen yang diambil berisi nilai array yang ditentukan.
Kesimpulan
Artikel MongoDB ini mengilustrasikan penggunaan kueri operator $or MongoDB untuk mengeksekusi operasi logis OR pada larik yang mencakup dua atau lebih ekspresi serta untuk mengambil dokumen yang cocok dengan setidaknya satu ekspresi. Operator $or diminta di shell MongoDB untuk melakukan operasi yang berbeda. Operator $or digunakan dalam operator bersyarat sebagai ekspresi dan mengembalikan dokumen berdasarkan pernyataan bersyarat.