Regex 使用正则表达式的mongodb查询中出现意外结果
下面的第一个查询显示集合的全部内容,下面的三个查询按预期返回一个项目 为什么最后一个查询返回两项Regex 使用正则表达式的mongodb查询中出现意外结果,regex,mongodb,Regex,Mongodb,下面的第一个查询显示集合的全部内容,下面的三个查询按预期返回一个项目 为什么最后一个查询返回两项 > db.log.find() { "_id" : 123, "user" : "stefano" } { "_id" : 456, "user" : "franco" } > db.log.find({'user':/st/}) { "_id" : 123, "user" : "stefano" } > db.log.find({'user':/fr/}) { "_id" : 4
> db.log.find()
{ "_id" : 123, "user" : "stefano" }
{ "_id" : 456, "user" : "franco" }
> db.log.find({'user':/st/})
{ "_id" : 123, "user" : "stefano" }
> db.log.find({'user':/fr/})
{ "_id" : 456, "user" : "franco" }
> db.log.find({'user':/st*/})
{ "_id" : 123, "user" : "stefano" }
> db.log.find({'user':/fr*/})
{ "_id" : 123, "user" : "stefano" }
{ "_id" : 456, "user" : "franco" }
因为在正则表达式中,
*
是一个量词(在零次和无限次之间匹配)。因此,/fr*/
正则表达式与f
字面匹配,与r
零次或无限次匹配。()
如果您想创建一个与“start with”匹配的正则表达式,那么您可以使用以下命令:
/^fr/
,因为在正则表达式中,*
是一个量词(零次和无限次之间的匹配)。因此,/fr*/
正则表达式与f
字面匹配,与r
零次或无限次匹配。()
如果要创建一个与“start with”匹配的正则表达式,则可以使用以下命令:/^fr/