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

MongoDB, udførelse af forespørgsel ved regulært udtryk på indekserede felter

Faktisk ifølge dokumentationen,

Hvis der findes et indeks for feltet, så matcher MongoDB det regulære udtryk mod værdierne i indekset, hvilket kan være hurtigere end en samlingsscanning. Yderligere optimering kan forekomme, hvis det regulære udtryk er et "præfiksudtryk", hvilket betyder, at alle potentialmatches starter med den samme streng. Dette gør det muligt for MongoDB at konstruere et "interval" fra det præfiks og kun matche de værdier fra indekset, der falder inden for det interval.

http://docs.mongodb.org/manual/reference/operator/query/regex/#index-use

Med andre ord:

Til /Jon Skeet/ regex ,mongo vil fuldscanne nøglerne i indekset og derefter hente de matchede dokumenter, hvilket kan være hurtigere end samlingsscanning.

For /^Jon Skeet/ regex ,mongo vil kun scanne det område, der starter med regex i indekset, hvilket vil være hurtigere.



  1. Hurtig måde at finde dubletter på indekseret kolonne i mongodb

  2. Importer dokumenter til MongoDB fra en række JSON-dokumenter

  3. Læsning af DBname.system.indexes mislykkedes på Atlas-klyngen af ​​mongobee efter oprettelse af forbindelse

  4. MongoDB:Serveren har startadvarsler