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)