gpt4 book ai didi

mongodb - mongo分页排序

转载 作者:可可西里 更新时间:2023-11-01 10:42:32 26 4
gpt4 key购买 nike

我需要在我的 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}
})

但是,我该如何分页呢?我可以使用 skip + limit 选项,但是在发布这个问题之前我浏览了一些帖子,不推荐用于大型数据集。我预计我的收藏有大约 75000 份文件。

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

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

请指教。

最佳答案

直接使用sort函数怎么样

db.testcollection.find({}).sort({createdDate:-1}).skip(1).limit(10)

关于mongodb - mongo分页排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35235030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com