Performance 使用MongoDB复合索引进行排序

Performance 使用MongoDB复合索引进行排序,performance,mongodb,sorting,Performance,Mongodb,Sorting,我正在考虑使用MongoDB并将我的数据从MySQL转移。我将使用MongoDB的嵌入式阵列,并添加了100000个示例文档。以下是文档的架构和一些示例数据: array( "a" => array("a", "c", "d"), "b" => 200 ) array( "a" => array("b", "

我正在考虑使用MongoDB并将我的数据从MySQL转移。我将使用MongoDB的嵌入式阵列,并添加了100000个示例文档。以下是文档的架构和一些示例数据:

array(
   "a" => array("a", "c", "d"),
   "b" => 200
)

array(
    "a" => array("b", "e", "d"),
    "b" => 300
)

array(
    "a" => array("f", "c", "d"),
    "b" => 400
)

array(
    "a" => array("o", "l", "g"),
    "b" => 500
)


array(
"a" => array("x","c","b"),
"b" => 600
)
一个示例查询是这样的:要获取200到500之间的所有x记录

array("a" => "x", "b" => array('$gte' => 200, '$lte' => 500))
当我把a,b索引在一起,并把它限制在10,我得到n扫描和n 10,这是完美的。但是,正如我从文章中读到的,跳过会花费很多,因此我必须根据它们的id对它们进行排序,并用“$gt”对下一个文档进行分页

在这一点之后,我将a、b、id索引在一起,并尝试了反向id复合索引组合。但是a,_id-1,b给了我最好的结果,但是N扫描,还是太多了。我从MongoDB文档中读到,它说如果在复合索引中放置排序字段,排序会很好,但排序不好。我该怎么办