我正在优化一个相当复杂的表单查询:
db.foo.find({
"$or":[
{"bar1":ObjectID("123123"), baz:false},
{"bar2":ObjectID("123123"), baz:false}
],
"deleted":false}
).sort("modified_on")
这种情况似乎在扼杀我的表现。我在modified_date字段上有索引,如下所示:
{
"v" : 1,
"key" : {
"modified_on" : 1
},
"ns" : "realtalk.customer_profile",
"name" : "modified_on_1"
},
{
"v" : 1,
"key" : {
"modified_on" : -1
},
"ns" : "realtalk.customer_profile",
"name" : "modified_on_-1"
}
这些似乎根本没有加快查询速度。真正让我疯狂的是我的结果大小。此查询只返回少量对象,通常只有一个。如何对mongo进行如此长的排序,以及如何加快速度呢?