Mongodb: كيفية استخدام عامل التشغيل and ($and) في الاستعلامات
يمكنك استخدام العامل $and في MongoDB للبحث عن المستندات التي تطابق معايير متعددة.
يستخدم هذا المشغل بناء الجملة الأساسي التالي:
db.myCollection.find({ " $and ": [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
يبحث هذا المثال تحديدًا عن جميع المستندات الموجودة في المجموعة المسماة myCollection حيث يساوي الحقل 1 “مرحبًا” والحقل 2 له قيمة أكبر من أو تساوي 10.
توضح الأمثلة التالية كيفية استخدام هذه الصيغة عمليًا مع فريق التحصيلات باستخدام المستندات التالية:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, 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: استخدم عامل التشغيل AND مع حقلين
يوضح الكود التالي كيفية العثور على جميع المستندات في مجموعة الفرق حيث يكون حقل “الفريق” مساويًا لـ “توتنهام” وقيمة حقل “النقاط” أكبر من أو تساوي 22:
db.teams.find({ " $and ": [ {" team ": " Spurs "}, {" points ": { $gte : 22 }} ] })
يقوم هذا الاستعلام بإرجاع المستندات التالية:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("6201824afd435937399d6b6d"), team: 'Spurs', points: 23, rebounds: 9 }
لاحظ أن كل مستند في المخرجات يحتوي على “توتنهام” في حقل الفريق وقيمة أكبر من أو تساوي 22 في حقل النقاط.
مثال 2: استخدم عامل التشغيل AND مع أكثر من حقلين
الكود التالي يوضح كيفية البحث عن كافة المستندات في مجموعة الفرق حيث الحقل “فريق” لا يساوي “مافس” والقيمة في حقل “النقاط” أكبر من أو تساوي 22 والقيمة في حقل “المرتدات” » الحقل أقل من 7:
db.teams.find({ " $and ": [ {" team ": { $ne : " Mavs "}}, {" points ": { $gte : 22 }}, {" rebounds ": { $lt : 7 }} ] })
يقوم هذا الاستعلام بإرجاع المستند التالي:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 }
لاحظ أن هذه هي الوثيقة الوحيدة في المجموعة التي تستوفي المعايير الثلاثة:
- حقل “الفريق” لا يساوي ” Mavs “
- يحتوي حقل “النقاط” على قيمة أكبر من أو تساوي 22
- حقل “الارتدادات” له قيمة أقل من 7
ملاحظة : يمكنك العثور على الوثائق الكاملة للوظيفة $and هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في MongoDB:
MongoDB: كيفية التحقق مما إذا كان الحقل يحتوي على سلسلة
MongoDB: كيفية استخدام استعلام “NO IN”.
MongoDB: كيفية البحث عن “غير فارغ” في حقل معين