Bene, sia la regex che la ricerca di testo ($testo) ti aiutano a cercare nel testo in modo molto efficiente. Entrambi hanno i loro vantaggi e svantaggi, ma ci sono due chiare distinzioni
regex
-
Regex non sfrutta gli indici, a meno che tu non stia cercando all'inizio della stringa usando
^
operatore. -
Regex ti consente di cercare testo parziale. quindi .* e tanti altri modelli.
-
Regex non supporta le parole stop o non significative.
$testo
gli indici di testo in mongodb sono molto veloci e dovrebbero essere preferiti. Tuttavia, MongoDB non implementa indici di testo con funzionalità complete. Uno degli svantaggi principali è che non supporta la corrispondenza parziale. per esempio. se stai cercando gatto, cercherà solo gatto e gatti ma non lince rossa o bruco.
In conclusione è se stai cercando di implementare funzionalità come RDBMS like
operatore, '$text' non ti aiuterà (almeno nelle attuali implementazioni di MongoDB, ma in futuro potrebbe cambiare).