sql >> Database >  >> NoSQL >> MongoDB

Zoeken in mongo db met behulp van mangoest regex vs. tekst

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



  1. Hoe vraag je *juist* Redis van Tornado?

  2. Mongoose:CastError:Cast naar ObjectId mislukt voor waarde [object Object] op pad _id

  3. Gebruik mock MongoDB-server voor unit-test

  4. Redis-gedrag met meerdere gelijktijdige programma's die lezen/verwijderen op dezelfde hash-sleutel