我正在使用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)发布于 2013-05-25 20:39:19
实际上,mongoengine在mongodb中使用limit和skip参数进行查询。您可以通过对查询使用explain来验证这一点,并让它返回execution plan而不是结果。
https://stackoverflow.com/questions/16749466
复制相似问题