Bab ini memperkenalkan operator logika MongoDB, mirip dengan kondisi "dan" dan "atau" dalam SQL.
Operator Logika yang Didukung oleh MongoDB
Operator | Deskripsi |
---|---|
$and | Memadankan dokumen yang memenuhi semua kondisi yang ditentukan, mirip dengan kondisi "dan" dalam SQL |
$not | Melakukan operasi NOT logis pada ekspresi yang ditentukan |
$or | Memadankan dokumen yang memenuhi setidaknya salah satu dari kondisi yang ditentukan, mirip dengan kondisi "atau" dalam SQL |
$nor | Memadankan dokumen yang tidak memenuhi kedua kondisi yang ditentukan |
$and
Sintaks:
{ $and: [ { <ekspresi1> }, { <ekspresi2> }, ... , { <ekspresiN> } ] }
Penjelasan:
-
adalah sub-ekspresi - $and mengambil array yang berisi sekelompok sub-ekspresi, dan semua sub-ekspresi harus dipenuhi
Contoh:
db.inventory.find( { $and: [ { qty: { $lt : 10 } }, { qty : { $gt: 50 } }] } )
Setara dengan SQL:
select * from inventory where qty > 50 and qty < 10
$not
db.inventory.find( { price: { $not: { $gt: 1.99 } } } )
Penjelasan:
- Jika kondisinya adalah price > 1.99, maka operasi NOT akan menjadi price <= 1.99.
- Ini berarti query untuk dokumen di mana harga kurang dari atau sama dengan 1.99 atau di mana bidang harga tidak ada.
Mirip dengan SQL:
select * from inventory where price <= 1.99
$or
Mirip dengan kondisi "atau" dalam SQL Sintaks:
{ $or: [ { <ekspresi1> }, { <ekspresi2> }, ... , { <ekspresiN> } ] }
Penjelasan:
-
adalah sub-ekspresi - $or mengambil array yang berisi sekelompok sub-ekspresi, dan setidaknya satu sub-ekspresi harus dipenuhi
Contoh:
db.inventory.find( { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] } )
Setara dengan SQL:
select * from inventory where quantity < 20 or price=10
$nor
Operasi NOR logis Sintaks:
{ $nor: [ { <ekspresi1> }, { <ekspresi2> }, ... , { <ekspresiN> } ] }
Contoh:
db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )
Penjelasan:
- price != 1.99 dan sale != true, atau
- price != 1.99 dan bidang sale tidak ada, atau
- bidang price tidak ada dan sale != true