MongoDB 查询游标超时

背景

mongo 里面有 4000w 数据,数据量很大,需要 python 读取清洗处理,插入 mysql 里面,但在读的时候会存在游标超时,还有数据量太大读不出来,直接读是读不了的。

解决办法

在网上先找了游标超时解决办法,大部分都是这样说的:

4种方法解决MongoDB游标超时的问题 | 谢乾坤 | Kingname

但我还有数据量太大读不出来的问题,集合游标超时一起解决的 python 代码:

import pymongo

 # 连接 mongo 的 年度数据集合
 client = pymongo.MongoClient(host='localhost', port=27017)
 db = client.D
 collection = db['D']

count = 0 # 计数
for item in collection.find({},{'_id':0,},no_cursor_timeout=True).batch_size(5000): 
        
    '''
    处理每一个 item 字典
    '''

no_cursor_timeout=True:设置游标不超时

batch_size(5000):每次读 5000 条

这样写虽然会增加 io 时间,见上面链接里面的解说,但相对较为稳定,可以依次处理数据,我运行了一个下午,处理了几百万数据都没有问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值