Python使用pymongo查找数据collection.find()数据多的时候问题

2019-09-04 07:21:36   Python

Python使用pymongo查找数据,collection.find()在数据多的时候会在100条的时候卡住不动,这是因为默认最多返回100条数据,数据量大的时候需要用batch_size方法解决

问题

假设我们有超过100条数据,我们执行以下代码

i=0

for content in collection.find():
    i += 1
        print(i)

我们会发现,到101的时候就突然卡住了,函数还不返回。等待许久,继续打印。

原因

MongoDB默认最多返回101条记录,相关内容可以在官方文档找到

find() and aggregate() operations have an initial batch size of 101 documents by default. Subsequent getMore operations issued against the resulting cursor have no default batch size, so they are limited only by the 16 megabyte message size.

解决

我们使用batch_size方法

i=0

for content in collection.find().batch_size(200):
     i += 1
        print(i)

如此,便可以了,batch size也可以设置50或者500等任意数,但是不建议太大。

vien.tech版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/191
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册

亲情非友情链接