Mongodb: كيفية استخدام عامل التشغيل or ($or) في الاستعلامات
يمكنك استخدام عامل التشغيل $or في MongoDB للعثور على المستندات التي تطابق أيًا من المعايير المتعددة.
يستخدم هذا المشغل بناء الجملة الأساسي التالي:
db.myCollection.find({ “ $or ”: [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
يبحث هذا المثال تحديدًا عن جميع المستندات الموجودة في المجموعة المسماة myCollection حيث يساوي الحقل 1 “مرحبًا” أو يحتوي الحقل 2 على قيمة أكبر من أو تساوي 10.
توضح الأمثلة التالية كيفية استخدام هذه الصيغة عمليًا مع فريق التحصيلات باستخدام المستندات التالية:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 35, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})
مثال 1: استخدم عامل التشغيل OR مع حقلين
يوضح الكود التالي كيفية العثور على جميع المستندات في مجموعة الفرق حيث يكون حقل “الفريق” مساويًا لـ “توتنهام” أو قيمة حقل “النقاط” أكبر من أو تساوي 31:
db.teams.find({ “ $or ”: [ {" team ": " Spurs "}, {" points ": { $gte : 31 }} ] })
يقوم هذا الاستعلام بإرجاع المستندات التالية:
{ _id: ObjectId("62018750fd435937399d6b6f"), team: 'Mavs', points: 35, rebounds: 12 } { _id: ObjectId("62018750fd435937399d6b70"), team: 'Spurs', points: 20, rebounds: 7 } { _id: ObjectId("62018750fd435937399d6b71"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("62018750fd435937399d6b72"), team: 'Spurs', points: 23, rebounds: 9 }
لاحظ أن كل مستند في المخرجات يحتوي على “توتنهام” في حقل الفريق أو قيمة أكبر من أو تساوي 31 في حقل النقاط.
مثال 2: استخدام عامل التشغيل OR مع أكثر من حقلين
الكود التالي يوضح كيفية البحث عن جميع المستندات في مجموعة الفرق حيث حقل “الفريق” يساوي “مافس” أو قيمة حقل “النقاط” أكبر من أو تساوي 25 أو قيمة حقل “المرتدات” أقل من 8:
db.teams.find({ “ $or ”: [ {" team ": " Mavs "}, {" points ": { $gte : 25 }}, {" rebounds ": { $lt : 8 }} ] })
يقوم هذا الاستعلام بإرجاع المستند التالي:
{ _id: ObjectId("62018750fd435937399d6b6e"), team: 'Mavs', points: 30, rebounds: 8 } { _id: ObjectId("62018750fd435937399d6b6f"), team: 'Mavs', points: 35, rebounds: 12 } { _id: ObjectId("62018750fd435937399d6b70"), team: 'Spurs', points: 20, rebounds: 7 } { _id: ObjectId("62018750fd435937399d6b71"), team: 'Spurs', points: 25, rebounds: 5 }
لاحظ أن كل واحدة من هذه المستندات تستوفي واحدًا أو أكثر من المعايير الثلاثة:
- حقل “الفريق” يساوي ” Mavs “
- يحتوي حقل “النقاط” على قيمة أكبر من أو تساوي 25
- حقل “الارتدادات” له قيمة أقل من 8
ملاحظة : يمكنك العثور على الوثائق الكاملة للوظيفة $or هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في MongoDB:
MongoDB: كيفية استخدام عامل التشغيل AND في الاستعلامات
MongoDB: كيفية التحقق مما إذا كان الحقل يحتوي على سلسلة
MongoDB: كيفية استخدام استعلام “NO IN”.
MongoDB: كيفية البحث عن “غير فارغ” في حقل معين