如何避免在内存中汇集数据.在 pymongo 中迭代游标对象时? [英] How avoid pooling data in memory. When iterate cursor object in pymongo?

查看:48
本文介绍了如何避免在内存中汇集数据.在 pymongo 中迭代游标对象时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何避免在内存中汇集数据.在 pymongo 中迭代游标对象时?

How avoid pooling data in memory. When iterate cursor object in pymongo?

示例:

def iter():
    c=pymongo.Connection()
    cursor=c.db.media.find().skip(0).limit(50000)
    for item in cursor:
        yield item

在它进入循环for 之前,有大约 2 次的停顿.由于某种原因,它在开始迭代之前将所有数据加载到内存中.我可以以某种方式避免它吗?

Before it goes in cycle for there is pause about 2 minus. It loads all data in memory before start iterate for some reason. Can i somehow avoid it?

如果我在 mongodb shell 中执行,一切都会好的.

If I do it in mongodb shell everything is ok.

推荐答案

你知道这是否可行吗?如果 c.db.media.find() 返回所有内容而不是迭代器,我不确定您能做多少.

Do you know if this is possible? If c.db.media.find() returns everything instead of an iterator, I'm not sure there's much you can do.

这篇关于如何避免在内存中汇集数据.在 pymongo 中迭代游标对象时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆