pymongo.errors.CursorNotFound: C

2020-02-25  本文已影响0人  大数据ZRL
    demos = db.col.find({},no_cursor_timeout = True)
    for doc in demos:
        db.col.delete_many({'table': doc['name']})
        do_something()
    demos.close() # 关闭游标
    #每次只返回5个文档
    for doc in db.col.find().batch_size(5):
        db.col.delete_many({'table': doc['name']})
        do_something()

注意:
1、第一种方法不建议,因为万一你的程序中间某个步骤卡住了又不报错,那么你的cursor也不会超时,这样不利于找出bug而且还会浪费大量的计算资源(只在batch_size(1)不起作用时使用)
2、第二种方法仍然可能会出现超过10分钟而没有返回的情况,具体可以去权衡10分钟和每批次取多少条数据,保证这么多条数据在10分钟内可以计算完并触发返回


参考链接:https://blog.csdn.net/myli_binbin/article/details/99675677

上一篇 下一篇

猜你喜欢

热点阅读