【问题标题】:Get paginated result in Mongodb aggregation在 Mongodb 聚合中获取分页结果
【发布时间】:2017-08-24 21:08:54
【问题描述】:

我正在处理大量数据并使用 mongodb 聚合框架查询这些数据。这是一个示例数据:

{
   "id": "1"
   "name":"abc"
},
{
   "id": "2"
   "name":"abc"
},
{
   "id": "3"
   "name":"abc"
},
...,
{
   "id": "100"
   "name":"abc"
}

所以我所做的是一次 10 个结果,因此我将 $limit 设置为 10。但是如果我想要在 id:10 之后得到 10 个结果,即对象之后有 10 个结果id 10. 所以它应该返回

{
   "id": "11"
   "name":"abc"
},
{
   "id": "12"
   "name":"abc"
},
{
   "id": "13"
   "name":"abc"
},
...(And So on till id:20)

有没有办法进行这种聚合查询?任何帮助或建议将不胜感激。提前谢谢你。

【问题讨论】:

    标签: mongodb aggregation-framework


    【解决方案1】:

    在请求结果时,在请求中传递 pageSize 和 pageNumber。

    db.your_collection.aggregate([
        {
            "$match": {
                // your query
            }
        },
        {
            "$skip": (pageNumber - 1) * pageSize
        },
        {
            "$limit": pageSize
        }
    ])
    

    或者你可以使用:

    db.your_collection.find({/*your query*/}).skip((pageNumber - 1) * pageSize).limit(pageSize)
    

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 2020-03-05
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多