如何解决pymongo出现pymongo errors CursorNotFound: cursor id xxx not found这一问题?

一、出现这种问题的原因

  游标连接单次最大超时时间为10分钟,单次从mongo服务端获取的数据为101条或者1~16M,如果在10分钟内,未处理完获取的所有数据,则会报异常

二、解决方案

  1、设置 no_cursor_timeout=True,即游标连接永不超时,需要手动关闭游标(可以利用with上下文管理器)

  2、减少单次获取的数据量,比如 batch_size=10,即单次获取10条数据

三、示例

with mongo_col.find({},{'_id':0},no_cursor_timeout=True,batch_size=10) as cursor:
    for result in cursor:
        parse(result)

 

上一篇:MongoDB 排序


下一篇:BZOJ.3532.[SDOI2014]LIS(最小割ISAP 退流)