https://stackoverflow.com/questions/48305624/how-to-use-mongodb-aggregation-for-pagination
http://blog.axant.it/2016/01/20/mongodb-aggregation-pipeline-and-pagination/
http://blog.axant.it/2016/01/20/mongodb-aggregation-pipeline-and-pagination/
db.Order.aggregate([
{ '$match' : { "company_id" : ObjectId("54c0...") } },
{ '$sort' : { 'order_number' : -1 } },
{ '$facet' : {
metadata: [ { $count: "total" }, { $addFields: { page: NumberInt(3) } } ],
data: [ { $skip: 20 }, { $limit: 10 } ] // add projection here wish you re-shape the docs
} }
] )
pipeline = [
{'$match': {'status': 'done'}},
{'$group': {'_id': 'results', 'result': {'$push': '$$CURRENT'}}},
{'$project': {'_id': 0, 'result': 1, 'pages': {'$divide': [{'$size': '$result'}, ITEMS_PER_PAGE]}}},
{'$unwind': '$result'},
{'$skip': 1 * ITEMS_PER_PAGE},
{'$limit': ITEMS_PER_PAGE}
]
No comments:
Post a Comment