Mongodb: كيفية استخدام استعلام "ليس في"


يمكنك استخدام الصيغة التالية للعثور على كافة المستندات التي لا توجد فيها قيمة حقل معين في قائمة معينة من القيم:

 db.collection.find({field1: { $nin : [" value1 ", " value2 ", " value3 "]}}) 

يبحث هذا الاستعلام المحدد عن كافة المستندات التي لا تساوي فيها قيمة الحقل 1 القيمة 1 أو القيمة 2 أو القيمة 3.

توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا.

مثال 1: استعلام عن “NOT IN” بقيمة

لنفترض أن لدينا فريق تحصيل لديه المستندات التالية:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

يمكننا استخدام الكود التالي للعثور على جميع المستندات التي لا يساوي فيها حقل “الفريق” قيمة “الصواريخ”:

 db.teams.find({team: { $nin : [" Rockets "]}}) 

يقوم هذا الاستعلام بإرجاع المستندات التالية:

 { _id: ObjectId("619527e467d6742f66749b72"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

{ _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

لاحظ أن المستندات الوحيدة التي تم إرجاعها هي تلك التي لا يساوي فيها حقل “الفريق” “الصواريخ”.

مثال 2: الاستعلام عن “NON IN” مع قائمة القيم

لنفترض أن لدينا فريق تحصيل لديه المستندات التالية:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

يمكننا استخدام الكود التالي للعثور على جميع المستندات التي لا يساوي فيها حقل “الفريق” قيمة “Rockets” أو “Cavs”:

 db.teams.find({team: { $nin : [" Rockets ", " Cavs "]}}) 

يقوم هذا الاستعلام بإرجاع المستندات التالية:

 { _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

لاحظ أن المستندات الوحيدة التي تم إرجاعها هي تلك التي لا يساوي فيها حقل “الفريق” “Rockets” أو “Cavs”.

ملاحظة : يمكنك العثور على الوثائق الكاملة للوظيفة $nin هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في MongoDB:

MongoDB: كيفية الاستعلام باستخدام التعبير العادي “أعجبني”.
MongoDB: كيفية التحقق مما إذا كان الحقل يحتوي على سلسلة
MongoDB: كيفية إضافة حقل جديد إلى المجموعة
MongoDB: كيفية إزالة حقل من كل مستند

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *