MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Problème de correspondance des regex MongoDB

Le problème est avec la correspondance partielle, puisque vous ne restreignez pas la regex pour le mot entier, la correspondance partielle qui existe dans a:b:c c'est-à-dire a:b vous permet d'obtenir ce document.

Utilisez l'expression régulière suivante avec ^$ qui sont des ancres pour représenter le début et la fin du mot ;

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

Cela fera en sorte que la regex s'applique à toute la chaîne et ignore les correspondances partielles comme expliqué ci-dessus. Pour en savoir plus sur les ancres regex, cliquez ici .

Donc, en résumé, il n'y a pas de bogue, juste une mauvaise utilisation de regex.