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