Tja, både regex och textsökning ($text) hjälper dig att söka i text mycket effektivt. Båda har sina egna fördelar och nackdelar, men det finns två tydliga skillnader
regex
-
Regex utnyttjar inte index, såvida du inte söker i början av strängen med
^
operatör. -
Regex låter dig söka i deltext. därför .* och så många andra mönster.
-
Regex stöder inte stopp- eller brusord.
$text
textindex i mongodb är riktigt snabba och bör föredras. MongoDB implementerar dock inte fullständiga textindex. En huvudsaklig nackdel är att den inte stöder partiell matchning. t.ex. om du söker efter katt, kommer den bara att söka efter katt och katter men inte bobcat eller larv.
Slutsatsen är om du funderar på att implementera funktioner som RDBMS
like
operator, '$text' kommer inte att hjälpa dig (åtminstone i nuvarande implementeringar av MongoDB, men i framtiden kan det komma att ändras).