MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Regex-Matching-Problem

Das Problem liegt bei der teilweisen Übereinstimmung, da Sie die Regex nicht auf das ganze Wort einschränken, die teilweise Übereinstimmung, die in a:b:c existiert das ist a:b führt dazu, dass Sie dieses Dokument erhalten.

Verwenden Sie die folgende Regex mit ^$ das sind Anker, die den Anfang und das Ende des Wortes darstellen;

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

Dadurch wird die Regex für die gesamte Zeichenfolge angewendet und die teilweisen Übereinstimmungen wie oben erläutert ignoriert. Weitere Informationen zu Regex-Ankern finden Sie hier .

Zusammenfassend lässt sich sagen, es gibt keinen Fehler, nur einen Missbrauch von Regex.