Mongo中的复合索引和排序

Jim*_*mmy 6 indexing mongodb

我在Mongo集合上有这个索引a,b,-c.

当我运行这个查询时:通过a,b,f,(排序依据)-c查找,c上的索引会快速排序吗?

Srd*_*jic 6

是的,这些字段上的复合索引将快速进行以下查询:

  1. 找到)
  2. 发现(A,B)
  3. 发现(A,B,C)

只要排序顺序与索引中的排序顺序相同,即.如果您在这三个键中的任何一个上反转排序顺序,Mongo将执行完整的集合扫描,而不是使用而不是使用索引.

  • 只要排序字段上的顺序相同,就可以使用索引.您可以按{c:1}或{c:-1}排序,仍然可以使用索引.你*不能*按{b:1,c:-1}排序,并有效地使用索引; 但你可以按{b:1,c:1}排序. (2认同)