我试图创建一个Android应用程序,在mongodb集合中提取1-10个文档并在列表中显示这些项目,然后当列表到达结尾时我想要拉出11-20个文档mongodb集合,它继续。
def get_all_tips(from_item, max_items):
db = client.MongoTip
tips_list = db.tips.find().sort([['_id', -1]]).limit(max_items).skip(from_item)
if tips_list.count() > 0:
from bson import json_util
return json_util.dumps(tips_list, default=json_util.default), response_ok
else:
return "Please move along nothing to see here", response_invalid
pass
但上述代码不按照我的预期方式运行,而是从from_item
返回max_items
示例:调用get_all_tips(3,4)
它返回:
文件3,文件4,文件5,文件6
我期待:
文件3,文件4
答案 0 :(得分:0)
在您的代码中,您指定了两个参数。
因此,调用get_all_tips(3,4)将返回从文档3开始的4个文档,这正是正在发生的事情。
建议的修正:
如果您想在函数中指定开始和结束索引,我建议您进行以下更改:
def get_all_tips(from_item, to_item):
if to_item < from_item:
return "to_item must be greater than from item", bad_request
db = client.MongoTip
tips_list = db.tips.find().sort([['_id', -1]]).limit(to_item - from_item).skip(from_item)
话虽如此,我想指出MongoDb文档不建议对大型集合使用skip进行分页。 MongoDb 3.2 cursor.skip