MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Ricerca in mongo db usando mongoose regex vs. text

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).