Е, както регулярните изрази, така и текстовото търсене ($text) ви помагат да търсите в текст много ефективно. И двете имат своите предимства и недостатъци, но има две ясни разлики
Регулярен израз
-
Regex не се възползва от индекси, освен ако не търсите в началото на низ с помощта на
^
оператор. -
Regex ви позволява да търсите частичен текст. следователно .* и толкова много други модели.
-
Regex не поддържа думи за спиране или шум.
$text
текстовите индекси в mongodb са наистина бързи и трябва да бъдат предпочитани. Въпреки това, MongoDB не прилага пълнофункционални текстови индекси. Един основен недостатък е, че не поддържа частично съвпадение. напр. ако търсите котка, тя ще търси само котка и котки, но не и риче или гъсеница.
Изводът е, ако искате да внедрите функция като RDBMS
like
оператор, '$text' няма да ви помогне (поне в текущите реализации на MongoDB, но в бъдеще може да се промени).