【发布时间】:2014-12-25 05:11:43
【问题描述】:
我正在尝试查找字段以值开头的文档。
使用notablescan 禁用表扫描。
这行得通:
db.articles.find({"url" : { $regex : /^http/ }})
这不是:
db.articles.find({"source.homeUrl" : { $regex : /^http/ }})
我得到错误:
error: { "$err" : "table scans not allowed:moreover.articles", "code" : 10111 }
url 和source.homeUrl 都有索引:
{
"v" : 1,
"key" : {
"url" : 1
},
"ns" : "mydb.articles",
"name" : "url_1"
}
{
"v" : 1,
"key" : {
"source.homeUrl" : 1
},
"ns" : "mydb.articles",
"name" : "source.homeUrl_1",
"background" : true
}
对子文档索引的正则表达式查询是否有任何限制?
【问题讨论】:
-
应该工作,当你解释时会发生什么?您是否尝试使用允许扫描的数据库运行它? (有解释)
-
我试过运行一个解释,但它花了很长时间我不得不杀死它。如果我启用表扫描,查询都会返回预期结果。
标签: regex mongodb search indexing full-table-scan