Проблемът е с частичното съвпадение, тъй като не ограничавате регулярния израз за цялата дума, частичното съвпадение, което съществува в a:b:c
това е a:b
води до получаване на този документ.
Използвайте следния регулярен израз с ^$
които са котви за представяне на началото и края на думата;
db.foo.find({path: /^a:[^:]+$/})
db.foo.find({path: /^a:[a-z]+$/})
Това ще накара регулярния израз да се прилага за целия низ и ще игнорира частичните съвпадения, както е обяснено по-горе. За повече информация относно котвите на регулярни изрази, щракнете тук .
И така, в обобщение, няма грешка, а само злоупотреба с регулярен израз.