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

MongoDB, esecuzione di query per espressione regolare su campi indicizzati

In realtà secondo la documentazione,

Se esiste un indice per il campo, MongoDB confronta l'espressione regolare con i valori nell'indice, il che può essere più veloce della scansione di una raccolta. Un'ulteriore ottimizzazione può verificarsi se l'espressione regolare è una "espressione di prefisso", il che significa che tutte le potenziali corrispondenze iniziano con la stessa stringa. Ciò consente a MongoDB di costruire un "intervallo" da quel prefisso e di confrontare solo i valori dell'indice che rientrano in quell'intervallo.

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

In altre parole:

Per /Jon Skeet/ regex, mongo eseguirà la scansione completa delle chiavi nell'indice, quindi recupererà i documenti corrispondenti, il che può essere più veloce della scansione della raccolta.

Per /^Jon Skeet/ regex ,mongo analizzerà solo l'intervallo che inizia con l'espressione regolare nell'indice, che sarà più veloce.