mongo 分页排序

问题描述 投票:0回答:1

我需要在我的

mongodb
集合中实现分页。这是我收藏的文档示例

{
  "_id" : "<Mongo Generated>",
  "category" : "abc",
  "createdDate" : "<Date of creation of the document>",
  "markedDate" : "<Date when the document is marked 
               (marking is an activity that is done via my application>"
}

这是我的要求:

  1. 我需要检索“
    abc
    ”类别中的所有文档,但是每页 10 个文档
  2. 只有在文档排序后才应进行分页 - 我必须先按
    markedDate
    (降序)对文档进行排序,然后按
    createdDate
    (降序)
  3. 应应用 10 个结果的限制
  4. 我应该能够根据输入中的页码跳到任何页面

我尝试执行以下查询以使用聚合对结果进行排序:

db.getCollection('testcollection').aggregate(
   {$match:{"category" : "abc"}}, 
   {$sort:{markedDate: -1, createdDate : -1}
})

但是,如何寻呼呢?我可以使用跳过+限制选项,但是在发布这个问题之前我浏览了一些帖子,并且不建议将其用于大型数据集。我预计我的收藏约有 75000 份文档。

此外,由于我的日期以 ISO 日期格式存储,因此我看到可见性仅在秒级别。我可能同时创建了 2 个文档。

在不影响性能的情况下对结果进行分页的最佳方式是什么?

请指教。

mongodb sorting pagination
1个回答
1
投票

直接使用排序功能怎么样

db.testcollection.find({}).sort({createdDate:-1}).skip(1).limit(10)
© www.soinside.com 2019 - 2024. All rights reserved.