Flask-Mongoengine API分页

时间:2013-05-25 12:15:41

标签: python mongodb flask mongoengine

我正在使用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)

1 个答案:

答案 0 :(得分:0)

实际上,mongoengine使用mongodb中的limitskip参数进行查询。您可以使用explain对查询进行验证,并让其返回execution plan而不是结果。