English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تستخدم تعبيرات النصوص بشكل شائع في جميع اللغات للبحث عن نماذج أو كلمات في أي نص.
مقارنةً بالبحث النصي، لا نحتاج إلى إجراء أي تكوين أو أمر لتشغيل تعبيرات النصوص.
افترض أننا قد كنا في قاعدة البيانات تُدعى 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
。