在Mongodb聚合中获取分页结果

时间:2017-08-24 21:08:54

标签: mongodb aggregation-framework

我正在玩一些大量数据并查询我正在使用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)

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

1 个答案:

答案 0 :(得分:0)

在请求结果时,请在请求中传递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)