0

我正在使用 MongoDB 和 Flask 为移动应用程序制作 JSON API。

当应用程序调用 /topics/ 时,它会返回一个主题列表,但我如何有效地对结果进行分页?MongoEngine 提供了偏移量和限制,但它会在限制之前抓取整个结果集等,如果我们有数千个文档,这不是很有效。

@app.route('/topics/<int:limit>/<int:page>', methods=['GET'])
def get_topics(limit=25, page=1):
    if limit is None or limit <= 1: 
        limit = 2

    if page is None or page <= 1:
        page = 1

    offset = (page - 1) * limit
    topics = Topic.objects().limit(limit).skip(offset)
4

1 回答 1

2

实际上,mongoengine 在 mongodb 中使用limitskip参数进行查询。您可以通过对查询使用解释来验证这一点,并让它返回执行计划而不是结果。

于 2013-05-25T12:39:18.813 回答