我使用MongoDB的,我有文件具有以下结构的集合:指数边界上蒙戈的正则表达式搜索
{
fName:"Foo",
lName:"Barius",
email:"[email protected]",
search:"foo barius"
}
我建立将执行在search
场正则表达式搜索功能。为了优化性能,我将这个集合编入了搜索字段。但是,事情还是有点慢。于是我就在样品上查询的explain()
:获胜的计划下
db.Collection.find({search:/bar/}).explain();
看,我看到以下指标范围:
"search": [
"[\"\", {})",
"[/.*bar.*/, /.*bar.*/]"
]
第二组是有道理的 - 它看起来从任何含有酒吧任何包含酒吧。但是,第一套让我感到困惑。它看起来在""
的范围内,包括{}
排他性。我担心这个额外的边界会减慢我的查询速度。是否有必要保持?如果不是,我如何防止它被包含?
有同样的问题,你有没有找到解释? – kirhgoff
@kirhgoff您正在使用哪个版本的mongoDB? – barbakini
@kirhgoff你在用什么'mongoDB native'或'mongoose'。检查一下 - http://voidcanvas.com/mongoose-vs-mongodb-native/ –