5
這是我的MongoDB shell會話;MongoDB正則表達式匹配問題
> db.foo.save({path: 'a:b'})
WriteResult({ "nInserted" : 1 })
> db.foo.findOne()
{ "_id" : ObjectId("58fedc47622e89329d123ee8"), "path" : "a:b" }
> db.foo.save({path: 'a:b:c'})
WriteResult({ "nInserted" : 1 })
> db.foo.find({path: /a:[^:]+/})
{ "_id" : ObjectId("58fedc47622e89329d123ee8"), "path" : "a:b" }
{ "_id" : ObjectId("58fedc57622e89329d123ee9"), "path" : "a:b:c" }
> db.foo.find({path: /a:[a-z]+/})
{ "_id" : ObjectId("58fedc47622e89329d123ee8"), "path" : "a:b" }
{ "_id" : ObjectId("58fedc57622e89329d123ee9"), "path" : "a:b:c" }
顯然,正則表達式/a:[^:]+/
和/a:[a-z]+/
不應該匹配字符串'a:b:c'
,不過貌似蒙戈未能在這個表達式,沒有人知道這裏發生了什麼?
它被提交給MongoDB Jira,as a bug ticket,這是MongoDB查詢結構中的一個錯誤嗎?