我有一个超过10亿份文件的集合。其中一些人拥有extra.id
字段,但大多数人没有。我有一个如下所述的索引集。当我运行简单查询以获取设置了extra.id
的文档计数时,查询需要很长时间才能完成。实际上,我从未等待足够长的时间来完成它。我希望< 1s响应而我得到的是> 15分钟(在我杀死它之前)。我在从Windows客户端连接时在Ubuntu上运行MongoDB 3.4.7。
发生了什么事?我认为部分过滤器表达式在这里会有所帮助,因为查询应该只返回索引文档的计数。
db.handles.find({"extra.id":{$exists:true}}).count()
{
"v" : 1,
"name" : "extra.id_1",
"ns" : "pull.handles",
"background" : true,
"partialFilterExpression" : {
"extra.id" : {
"$exists" : true
}
}
}