正则表达式可以灵活地匹配查询条件,如果希望正则表达式能命中索引,就要注意了:
Mongodb能为前缀型的正则表达式命中索引,比如:需要查询Mail中user以z开头的:
/^z/
如果有user索引,这种查询很高效
但其他的即使有索引,也不会命中索引,比说:需要查询Mail中的user中含有z的:
/.*z.*/
/^.*z.*/
这种查询是不会命中到索引的,当数据量很大,速度很慢
总之,^后的条件必须明确,不能^.* ^[a-z]之类开头的
Mongodb能为前缀型的正则表达式命中索引,比如:需要查询Mail中user以z开头的:
/^z/
如果有user索引,这种查询很高效
但其他的即使有索引,也不会命中索引,比说:需要查询Mail中的user中含有z的:
/.*z.*/
/^.*z.*/
这种查询是不会命中到索引的,当数据量很大,速度很慢
总之,^后的条件必须明确,不能^.* ^[a-z]之类开头的
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-1990056/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15498/viewspace-1990056/