我想在一个大集合上运行查询,但需要将请求分解为适合消息大小的内容。所以我得到了这样的东西:
class PaginatedCursor(object):
def __init__(self, cur, limit=100):
self.cur = cur
self.limit = limit
self.count = cur.count()
def __iter__(self):
skipper = count(start=0, step=self.limit)
for skip in skipper:
if skip >= self.count:
break
for document in self.cur.skip(skip).limit(self.limit):
yield document`
请参阅pymongo - Message length is larger than server max message size
cur = collection.find({#some query})
for d in PaginatedCursor(cur, 100):
print(d) #or whatever
问题是,cosmosDB不允许在分区集合中使用count(),存在以下错误:
命令中的查询必须针对单个分片键
是否存在另一种设计分页光标的方法,还是使用计数的方法(比较Getting 'query in command must target a single shard')?
谢谢