English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

عبارة النمط في MongoDB

تستخدم تعبيرات النصوص بشكل شائع في جميع اللغات للبحث عن نماذج أو كلمات في أي نص.

مقارنةً بالبحث النصي، لا نحتاج إلى إجراء أي تكوين أو أمر لتشغيل تعبيرات النصوص.

افترض أننا قد كنا في قاعدة البيانات تُدعى posts تم إدراج وثيقة في قاعدة البيانات "posts" كما يلي

> db.posts.insert(
{
   "post_text": "استمتع بالأوراق البحثية لمongoDB على w3codebox",
   "tags": [
      "mongodb",
      "w3codebox"
   ]
}
WriteResult({ "nInserted": 1 })

استخدام تعبيرات النصوص

البحث regex التالي يبحث عن جميع المقالات التي تحتوي على النص "w3codebox"–

> db.posts.find({post_text:{$regex:"w3codebox"}}).pretty(){
	"_id": ObjectId("5dd7ce28f1dd4583e7103fe0"),
	"post_text": "استمتع بالأوراق البحثية لمongoDB على w3codebox",
	"tags": [
		"mongodb",
		"w3codebox"
	]
}
{
	"_id": ObjectId("5dd7d111f1dd4583e7103fe2"),
	"post_text": "استمتع بالأوراق البحثية لمongoDB على w3codebox",
	"tags": [
		"mongodb",
		"w3codebox"
	]
}
>

يمكن كتابة الاستعلام نفسه بـ-

>db.posts.find({post_text:/w3codebox/})

استخدام تعبيرات النصوص غير الحساسة للكبير أو الصغير

لجعل البحث غير حساس للكبير أو الصغير، نستخدم$optionsمع المعاملات بـ value$i، إليك الأمر التالي للبحث عن النصوص التي تحتوي على الكلمةw3codebox، بغض النظر عن الحروف الكبيرة أو الصغيرة-

>db.posts.find({post_text:{$regex:"w3codebox",$options:"$i"}})

أحد نتائج الاستعلام الم返回ة هو الوثائق التالية، التي تحتوي علىw3codeboxكلمات مختلفة في الحالات المختلفة-

{
   "_id": ObjectId("53493d37d852429c10000004"),
   "post_text": "مرحبا! هذا منشورى على w3codebox", 
   "tags": ["w3codebox"]
}

استخدام تعبير النمط في عناصر المجموعة

يمكننا أيضًا استخدام مفهوم تعبير النمط في الحقول الديناميكية. عند تنفيذ وظيفة العلامات، يكون هذا مهمًا بشكل خاص. لذلك، إذا كنت تبحث عن جميع الكلمات التي تحتوي على العلامات وتبدأ بكلمة tutorial (تعليمية أو tutorialpoint أو tutorialphp)، يمكنك استخدام الكود التالي-

>db.posts.find({tags:{$regex:"tutorial"}})

تحسين استعلام النمط

  • إذا كان مجال المستندمؤشرسيستخدم الاستعلام مؤشر القيمة لتنسيق تعبير النمط. بالمقارنة مع مسح الكامل للجمعية باستخدام تعبير النمط، يجعل هذا البحث أسرع بكثير.

  • إذا كان تعبير النمطعبارة مقدمةإذا كان يجب على جميع النتائج البحثية البدء ببعض الأنماط، على سبيل المثال، إذا كان تعبير النمط^tutإذا كان يجب على الاستعلام البحث فقط عن الأنماط التي تبدأ بهذه الأنماط،tut