我对MongoDB的索引及其表现感到困惑。我正在构建一个node.js应用程序来查找某个区域内的菜肴。
我的桌子看起来像是这样,有3M餐具:
{
"_id" : ObjectId("560efcf76ea0f2293c60bf6a"),
"name" : "Brunch Pizza",
"loc" : [
-77.063166,
38.906866
],
"rs" : NumberInt(4) }
我有几个索引,但这里有相关的索引:
{ "loc" : "2d" }
{ "loc" : "2d", "name" : 1}
现在,当我查询 字段时,响应时间非常快(小于0.2秒)。当我一起查询两者时,它大概是1或2秒。我做错了什么?
sort is always: {rs:-1}
{"loc":{"$within":{"$box":[[-78.0,38.0],[-77.0,39.0]]}}}: 0.173s for 186k documents
{name:/pizza/gi}: 0.112s
但
{"loc":{"$within":{"$box":[[-78.0,38.0],[-77.0,39.0]]}}, name:/pizza/gi}: 2s
{name:/pizza/gi, "loc":{"$within":{"$box":[[-78.0,38.0],[-77.0,39.0]]}}}: 2s
这些是来自MongoChef的数字,但是从节点调用时,它的次数相似。