Latest web development tutorials

MongoDB التعابير المنطقية

تستخدم التعابير العادية لوصف استخدام سلسلة واحدة، وذلك تمشيا مع سلسلة من سلسلة النحوية مباراة القواعد.

العديد من لغات البرمجة دعم استخدام التعابير العادية لعمليات السلسلة.

يستخدم MongoDB $ مشغل التعابير المنطقية لتعيين سلسلة مطابقة التعبير العادية.

يستخدم MongoDB PCRE (بيرل متوافق التعبير منتظم) كلغة التعبير العادية.

وخلافا للبحث في النصوص، ونحن نستخدم تعبير عادي ليست في حاجة للقيام بأي التكوين.

النظر في الوثيقة هيكل المجموعة التالية من الوظائف، وتحتوي هذه الوثيقة على محتوى المادة، والتسمية:

{
   "post_text": "enjoy the mongodb articles on tutorialspoint",
   "tags": [
      "mongodb",
      "tutorialspoint"
   ]
}

باستخدام عبارات عادية

الأوامر التالية تستخدم التعابير العادية للعثور على المقالة على سلاسل w3cschool.cc:

>db.posts.find({post_text:{$regex:"w3cschool.cc"}})

ويمكن أيضا الاستعلام أعلاه أن تكون مكتوبة على النحو التالي:

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

التعابير العادية تحسس حالة الأحرف

إذا كنت بحاجة إلى استرداد حالة الأحرف، فإننا يمكن أن يحدد خيارات $ وأنا $.

فإن الأمر التالي تجد حالة الأحرف w3cschool.cc سلسلة:

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

وجمع عودة جميع البيانات التي تحتوي على w3cschool.cc سلسلة لا يتحسس:

{
   "_id" : ObjectId("53493d37d852429c10000004"),
   "post_text" : "hey! this is my post on  W3Cschool.cc", 
   "tags" : [ "tutorialspoint" ]
} 

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

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

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

تحسين منتظم الاستعلام التعبير

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

  • إذا كان التعبير العادي هو تعبير البادئة، سيتم تحديد كافة البيانات مطابقة السلسلة البادئة للبدء. على سبيل المثال: إذا كان التعبير العادي هو ^ توت، والاستعلام توت ننظر إلى بداية السلسلة.

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

التعابير العادية باستخدام المتغيرات. تأكد من استخدام مزيج من حدة التقييم سلسلة سيتم تحويل بعد لا يمكن أن تنتقل مباشرة إلى تعبير سلسلة سلسلة. وإلا فسيكون هناك أية رسالة خطأ، ولكن النتيجة هي فارغة! ومن الأمثلة على ذلك ما يلي:

var name=eval("/" + 变量值key +"/i"); 

ما يلي هو يحتوي استعلام غامض عنوان الكلمة ليست القضية الحساسة:

title:eval("/"+title+"/i")    // 等同于 title:{$regex:title,$Option:"$i"}