我有一个我想要搜索的集合,以查找[enabled]为真的最早[已更改]文档。为了预期这一点,我确保将[已更改]字段编入索引。
以下是否会使用此索引?
records.findOne({enabled:true}, {sort:[['changed', 'asc']]}, function(error, record) {
文档出现给我,建议我需要对索引进行过滤,以使其在排序中有用。在[改变]上添加一个(否则是多余的)过滤器会更好吗?
records.findOne({changed:{$gte:0}, enabled:true}, {sort:[['changed', 'asc']]}, function(error, record) {
答案 0 :(得分:1)
即使您之前未对索引进行过滤,索引也只能用于排序。但是,在过滤器中使用索引可以加快查询速度,因为您可以更快地减少扫描数据集。
您应该在两个查询中使用explain来验证哪个更好。