Le meilleur didacticiel MongoDB regex en 2024, dans ce didacticiel, vous pouvez apprendre Utilisation d'expressions régulières,expressions régulières insensible à la casse,Les éléments de tableau en utilisant des expressions régulières,Optimisation d'expressions régulières requête,
Les expressions régulières sont utilisées pour décrire l'utilisation d'une seule chaîne, en ligne avec une série de règles syntaxiques chaîne de match.
De nombreux langages de programmation prennent en charge l'utilisation des expressions régulières pour les opérations de chaîne.
MongoDB utilise $ opérateur regex pour définir la chaîne correspondant à l' expression régulière.
MongoDB utilise PCRE (Expression régulière Perl Compatible) comme langue d'expression régulière.
Contrairement à la recherche plein texte, nous utilisons une expression régulière n'a pas besoin de faire de configuration.
Considérons la structure du document ensemble de messages suivants, le document contient le contenu de l'article et l'étiquette:
{ "post_text": "enjoy the mongodb articles on tutorialspoint", "tags": [ "mongodb", "tutorialspoint" ] }
Les commandes suivantes utilisent des expressions régulières pour trouver l'article contient des chaînes w3cschool.cc:
>db.posts.find({post_text:{$regex:"w3cschool.cc"}})
La requête ci-dessus peut également être écrit comme:
>db.posts.find({post_text:/w3cschool.cc/})
Si vous avez besoin de récupérer un insensible à la casse, nous pouvons définir les options de $ que $ i.
La commande suivante trouvera insensible à la casse chaîne w3cschool.cc:
>db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})
La collection sera de retour toutes les données contenant le w3cschool.cc de chaîne ne sont pas sensibles à la casse:
{ "_id" : ObjectId("53493d37d852429c10000004"), "post_text" : "hey! this is my post on W3Cschool.cc", "tags" : [ "tutorialspoint" ] }
Nous pouvons également utiliser des expressions régulières dans le champ du tableau pour trouver le contenu. Ceci est utile dans la réalisation de l'étiquette, si vous avez besoin de trouver l'étiquette contient des données (tutoriel ou des tutoriels ou tutorialpoint ou tutorialphp) tutoriel au début, vous pouvez utiliser le code suivant:
>db.posts.find({tags:{$regex:"tutorial"}})
Il est l'utilisation d'expressions régulières Il y a deux points à noter:
Les expressions régulières en utilisant des variables. Assurez-vous d'utiliser une combinaison de chaîne eval convertira après ne peuvent être directement transmis à l'expression de concaténation. Sinon, il n'y a pas de message d'erreur, mais le résultat est vide! Des exemples sont les suivants:
var name=eval("/" + 变量值key +"/i");
Ce qui suit est une requête floue contient le titre mot-clé est pas sensible à la casse:
title:eval("/"+title+"/i") // 等同于 title:{$regex:title,$Option:"$i"}