小编Moh*_*ian的帖子

$sort 使我在 MongoDB 中的查询速度太慢

我有一个这样的查询,我想按日期对我的结果进行排序。我在 DateTime 上有一个降序索引,在 UserId 上有一个升序索引,但是当我尝试按 DateTime 对我的结果进行排序时,它变得太慢了。

db.Users.aggregate([  
  { "$match" : { "UserId" : { "$in" : [NUUID("1b029f8b-a17e-3172-9247- 
                  9cddfaf9702b")] } } },       
  { "$match" : { "DateTime" : { "$gte" : ISODate("2018-08-15T12:54:38Z"), 
    "$lte" : ISODate("2018-08-25T12:54:38Z") } } },   
  { "$sort" : { "DateTime" : -1} }, { "$skip" : 0 }, { "$limit" : 20 }])
Run Code Online (Sandbox Code Playgroud)

当我删除排序部分时,它变得太快了。我尝试如下,它也太快了。

db.Users.aggregate([             
  { "$match" : { "DateTime" : { "$gte" : ISODate("2018-08-15T12:54:38Z"), 
    "$lte" : ISODate("2018-08-25T12:54:38Z") } } }, 
  { "$match" : { "UserId" : …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

2
推荐指数
1
解决办法
3379
查看次数