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