Welnu, zowel regex als tekst zoeken ($ tekst) helpen u om zeer efficiënt in tekst te zoeken. Beide hebben hun eigen voor- en nadelen, maar er zijn twee duidelijke verschillen
regex
-
Regex maakt geen gebruik van indexen, tenzij u zoekt in het begin van een tekenreeks met
^
telefoniste. -
Met Regex kunt u gedeeltelijke tekst doorzoeken. daarom .* en zoveel andere patronen.
-
Regex ondersteunt geen stop- of ruiswoorden.
$text
tekstindexen in mongodb zijn erg snel en zouden de voorkeur moeten hebben. MongoDB implementeert echter geen volledige tekstindexen. Een belangrijk nadeel is dat het geen gedeeltelijke overeenkomst ondersteunt. bijv. als u op kat zoekt, zoekt het alleen naar kat en katten, maar niet naar bobcat of rups.
Waar het op neerkomt, is of u functies zoals RDBMS
like
. wilt implementeren operator, '$text' zal je niet helpen (tenminste in de huidige implementaties van MongoDB, maar in de toekomst kan dit veranderen).