Bueno, tanto la expresión regular como la búsqueda de texto ($texto) lo ayudan a buscar en el texto de manera muy eficiente. Ambos tienen sus propias ventajas y desventajas, pero hay dos distinciones claras
expresión regular
-
Regex no aprovecha los índices, a menos que esté buscando al principio de la cadena usando
^
operador. -
Regex le permite buscar texto parcial. por lo tanto .* y tantos otros patrones.
-
Regex no admite palabras de parada o ruido.
$texto
Los índices de texto en mongodb son realmente rápidos y deberían preferirse. Sin embargo, MongoDB no implementa índices de texto completos. Un inconveniente principal es que no admite coincidencias parciales. p.ej. si está buscando gato, buscará solo gato y gatos, pero no gato montés ni oruga.
La conclusión es si está buscando implementar una función como RDBMS like
operador, '$texto' no le ayudará (al menos en las implementaciones actuales de MongoDB, pero en el futuro puede cambiar).