این فصل معرفی می‌کند اپراتورهای منطقی MongoDB، مشابه "and" و "or" در SQL.

اپراتورهای منطقی پشتیبانی شده توسط MongoDB

اپراتور توضیحات
$and سند‌هایی را که تمام شرایط مشخص شده را برآورده می‌کنند مطابق "and" در SQL مچ کند
$not عملیات NOT منطقی را بر روی عبارت مشخص شده انجام می‌دهد
$or سند‌هایی را که حداقل یکی از شرایط مشخص شده را برآورده می‌کنند مطابق "or" در SQL مطابقت می‌یابد
$nor سند‌هایی را که هیچ یک از شرایط مشخص شده را برآورده نمی‌کنند مطابقت می‌یابد

$and

نحو:

{ $and: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }

توضیح:

  • یک زیر-عبارت است
  • $and یک آرایه را به دست می‌آورد که شامل یک گروه از زیر-عبارت‌هاست و تمام زیر-عبارت‌ها باید برآورده شوند

نمونه:

db.inventory.find( { $and: [ { qty: { $lt : 10 } }, { qty : { $gt: 50 } }] } )

معادل SQL:

select * from inventory where qty > 50 and qty < 10

$not

db.inventory.find( { price: { $not: { $gt: 1.99 } } } )

توضیح:

  • اگر شرط price > 1.99 باشد، عملیات NOT می‌شود price <= 1.99.
  • این بدان معنی است که درخواست می‌دهد سند‌هایی که price آنها کمتر یا مساوی 1.99 است یا فیلد price وجود ندارد را پرس‌وجو کند.

مشابه SQL:

select * from inventory where price <= 1.99

$or

مشابه شرط "or" در SQL نحو:

{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }

توضیح:

  • یک زیر-عبارت است
  • $or یک آرایه را به دست می‌آورد که شامل یک گروه از زیر-عبارت‌هاست و حداقل یک زیر-عبارت باید برآورده شود

نمونه:

db.inventory.find( { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] } )

معادل SQL:

select * from inventory where quantity < 20 or price=10

$nor

عملیات NOR منطقی نحو:

{ $nor: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }

نمونه:

db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ]  } )

توضیح:

  • price != 1.99 و sale != true یا
  • price != 1.99 و فیلد sale وجود ندارد یا
  • فیلد price وجود ندارد و sale != true