يقدم هذا الفصل المعاملات المنطقية في MongoDB، مما يشابه شروط "و" و "أو" في SQL.

المعاملات المنطقية المدعومة في MongoDB

المعامل الوصف
$and يطابق الوثائق التي تفي بجميع الشروط المحددة، مشابه لشرط "و" في SQL
$not يقوم بعملية NOT منطقية على التعبير المحدد
$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.
  • هذا يعني الاستعلام عن المستندات حيث يكون السعر أقل من أو يساوي 1.99 أو حيث لا يوجد حقل السعر.

ما يشابهه في SQL:

select * from inventory where price <= 1.99

$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 != true