Eh bien, les expressions régulières et la recherche de texte ($text) vous aident à rechercher très efficacement dans le texte. Les deux ont leurs propres avantages et inconvénients, mais il existe deux distinctions claires
regex
-
Regex ne tire pas parti des index, sauf si vous effectuez une recherche au début de la chaîne en utilisant
^
opérateur. -
Regex vous permet de rechercher du texte partiel. donc .* et tant d'autres motifs.
-
Regex ne prend pas en charge les mots vides ou parasites.
$texte
les index de texte dans mongodb sont très rapides et devraient être préférés. Cependant, MongoDB n'implémente pas d'index de texte complets. L'un des principaux inconvénients est qu'il ne prend pas en charge la correspondance partielle. par exemple. si vous recherchez un chat, la recherche ne portera que sur chat et chats, mais pas sur lynx roux ni sur chenilles.
En fin de compte, si vous cherchez à implémenter des fonctionnalités telles que RDBMS
like
opérateur, '$text' ne vous aidera pas (du moins dans les implémentations actuelles de MongoDB, mais à l'avenir, cela pourrait changer).