समस्या आंशिक मिलान के साथ है, क्योंकि आप पूरे शब्द के लिए रेगेक्स को प्रतिबंधित नहीं कर रहे हैं, आंशिक मिलान जो a:b:c
में मौजूद है वह है a:b
जिसके परिणामस्वरूप आपको वह दस्तावेज़ मिल रहा है।
^$
. के साथ निम्नलिखित रेगेक्स का प्रयोग करें जो शब्द की शुरुआत और अंत का प्रतिनिधित्व करने के लिए एंकर हैं;
db.foo.find({path: /^a:[^:]+$/})
db.foo.find({path: /^a:[a-z]+$/})
यह रेगेक्स को पूरे स्ट्रिंग के लिए लागू कर देगा, और ऊपर बताए अनुसार आंशिक मैचों को अनदेखा कर देगा। रेगेक्स एंकर पर अधिक जानकारी के लिए, यहां क्लिक करें ।
तो, संक्षेप में, कोई बग नहीं है, बस रेगेक्स का दुरुपयोग है।