MongoDB 实现分页
依靠其自带的两个函数来实现,skip与limit函数
skip(n)为跳过n条记录,limit(n)为限制返回n条记录。
如下,find实现的是过滤查询,在此忽略,skip参数设为pagesize * (n - 1),返回限制条数为页大小。
db[table_name].find({"user_id": {"$regex": user_id}}).skip(pagesize * (n - 1)).limit(pagesize)
具体代码如下:
import numpy as np
import pymongo
class Mongo:
port = 27017
host = 'localhost'
client = None
db_name = 'jol'
def __init__(self):
self.client = pymongo.MongoClient(host=self.host, port=self.port)
def info_page_number(self, n, pagesize, user_id):
table_name = 'rank_info'
db = self.client[self.db_name]
res = []
count = 0
for i in db[table_name].find({"user_id": {"$regex": user_id}}):
count = count + 1
for i in db[table_name].find({"user_id": {"$regex": user_id}}).skip(pagesize * (n - 1)).limit(pagesize):
res.append({
"user_id": i['user_id'],
"accepted": i['solved'],
"submit": i['submit'],
"rank": i['rank']
})
return {"data": res, "sum": count}

浙公网安备 33010602011771号