MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Problema de correspondência de regex do MongoDB


O problema é com a correspondência parcial, já que você não está restringindo a regex para a palavra inteira, a correspondência parcial que existe em a:b:c que é a:b está resultando na obtenção desse documento.

Use o seguinte regex com ^$ que são âncoras para representar o início e o fim da palavra;
db.foo.find({path: /^a:[^:]+$/})
db.foo.find({path: /^a:[a-z]+$/})

Isso fará com que a regex se aplique a toda a string e ignore as correspondências parciais, conforme explicado acima. Para saber mais sobre âncoras regex, clique aqui .

Então, em resumo, não há bug, apenas um uso indevido de regex.