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

Problemi di corrispondenza delle espressioni regolari MongoDB

Il problema è con la corrispondenza parziale, dal momento che non stai limitando la regex per l'intera parola, la corrispondenza parziale che esiste in a:b:c ovvero a:b ti fa ottenere quel documento.

Usa la seguente espressione regolare con ^$ che sono ancore per rappresentare l'inizio e la fine della parola;

db.foo.find({path: /^a:[^:]+$/})
db.foo.find({path: /^a:[a-z]+$/})

Ciò farà applicare la regex per l'intera stringa e ignorerà le corrispondenze parziali come spiegato sopra. Per ulteriori informazioni sugli anchor regex, fai clic qui .

Quindi, in sintesi, non ci sono bug, solo un uso improprio di regex.