sql >> Base de Datos >  >> NoSQL >> MongoDB

Problema de coincidencia de expresiones regulares de MongoDB

El problema es con la coincidencia parcial, ya que no está restringiendo la expresión regular para la palabra completa, la coincidencia parcial que existe en a:b:c eso es a:b está dando como resultado que usted obtenga ese documento.

Use la siguiente expresión regular con ^$ que son anclas para representar el principio y el final de la palabra;

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

Esto hará que la expresión regular se aplique a toda la cadena e ignorará las coincidencias parciales como se explicó anteriormente. Para obtener más información sobre los anclajes de expresiones regulares, haga clic aquí .

Entonces, en resumen, no hay ningún error, solo un mal uso de regex.