Nå, både regex og tekstsøgning ($text) hjælper dig med at søge i tekst meget effektivt. Begge har deres egne fordele og ulemper, men der er to klare forskelle
regex
-
Regex udnytter ikke indekser, medmindre du søger i begyndelsen af strengen ved hjælp af
^
operatør. -
Regex giver dig mulighed for at søge i delvis tekst. derfor .* og så mange andre mønstre.
-
Regex understøtter ikke stop- eller støjord.
$text
tekstindekser i mongodb er virkelig hurtige og bør foretrækkes. MongoDB implementerer dog ikke fuldfunktionelle tekstindekser. En væsentlig ulempe er, at den ikke understøtter delvis match. for eksempel. hvis du søger efter kat, vil den kun søge efter kat og katte, men ikke bobcat eller larve.
Bundlinjen er, hvis du ønsker at implementere funktioner som RDBMS like
operator, '$text' vil ikke hjælpe dig (i hvert fald i nuværende implementeringer af MongoDB, men i fremtiden kan det ændre sig).