Mongodb: كيفية الاستعلام باستخدام التعبير العادي "أعجبني"


يمكنك استخدام الطرق التالية للاستعلام عن MongoDB باستخدام التعبير العادي “like”:

الطريقة الأولى: البحث عن المستندات التي تحتوي على سلسلة

 db.collection.find({ name : { $regex : /string/i }})

لاحظ أن i يشير إلى تطابق غير حساس لحالة الأحرف.

الطريقة الثانية: البحث عن المستندات التي تبدأ بسلسلة

 db.collection.find({ name : { $regex : /^string/i }}) 

الطريقة الثالثة: البحث عن المستندات التي تنتهي بسلسلة

 db.collection.find({ name : { $regex : /string$/i }}) 

توضح الأمثلة التالية كيفية استخدام كل طريقة مع فريق التحصيل مع المستندات التالية:

 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 })

مثال 1: البحث عن المستندات التي تحتوي على سلسلة

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

 db.teams.find({ team : { $regex : /avs/i }})

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

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

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

مثال 2: ابحث عن المستندات التي تبدأ بسلسلة

يمكننا استخدام الكود التالي للبحث عن جميع المستندات التي تبدأ بالسلسلة “gua” في حقل الموضع:

 db.teams.find({ position : { $regex : /^gua/i }})

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

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

{ _id: ObjectId("6180504e8ffcfe76d07b1da7"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

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

مثال 3: ابحث عن المستندات التي تنتهي بسلسلة

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

 db.teams.find({ position : { $regex : /ward$/i }})

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

 { _id: ObjectId("618050808ffcfe76d07b1dab"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

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

Add a Comment

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