يقدم هذا الفصل المعاملات المنطقية في 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