Node + Mongo:在排序中使用索引

时间:2015-02-12 09:14:14

标签: mongodb

我有一个我想要搜索的集合,以查找[enabled]为真的最早[已更改]文档。为了预期这一点,我确保将[已更改]字段编入索引。

以下是否会使用此索引?

records.findOne({enabled:true}, {sort:[['changed', 'asc']]}, function(error, record) {

文档出现给我,建议我需要对索引进行过滤,以使其在排序中有用。在[改变]上添加一个(否则是多余的)过滤器会更好吗?

records.findOne({changed:{$gte:0}, enabled:true}, {sort:[['changed', 'asc']]}, function(error, record) {

1 个答案:

答案 0 :(得分:1)

即使您之前未对索引进行过滤,索引也只能用于排序。但是,在过滤器中使用索引可以加快查询速度,因为您可以更快地减少扫描数据集。

您应该在两个查询中使用explain来验证哪个更好。