【发布时间】:2017-09-21 23:23:09
【问题描述】:
这是我的 MongoDB shell 会话;
> 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',但看起来Mongo 在这个正则表达式上失败了,有人知道这里发生了什么吗?
它已提交给 MongoDB Jira,as a bug ticket,那么它是 MongoDB 查询结构中的错误吗?
【问题讨论】:
标签: regex mongodb mongodb-query