0

我要执行这样一条find
db.xxx.find({“a”:xxx, “b”:xxx, “c”:xxx}).sort({“d”});

于是我创建了这样的索引
a_1_b_1_c_1,
d_1

但是mongo会以d为索引来进行find,所以效率很慢,于是我删除了d_1索引,只留下了
a_1_b_1_c_1

这样虽然查询速度变快了,但是如果查询返回的结果很大,就会报错:overflow,原因就是sort的字段没有索引
于是我修改了索引,变成:
a_1_b_1_c_1_d_1

然而这并没有什么卵用,还是会报错
再加上d_1的索引,不报错了,但是速度又慢了。

不要跟我说hint指定abc的索引,那样是快,但还是会报错。。。

到底要怎么搞。。。