gpt4 book ai didi

python - 以资源友好的方式使用 Python 将巨大的 Mongo 结果集写入磁盘

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:28 24 4
gpt4 key购买 nike

Mongo 集合包含超过 500 万个项目。我需要获得所有“文档”的单个属性的“表示”(保存在变量中,或放入磁盘上的文件中,此时任何内容)。

我的查询是这样的:

cursor = db.collection.find({"conditional_field": {"subfield": True}}, {"field_i_want": True})

我的第一个愚蠢的尝试是 Pickle“光标”,但我很快意识到它不是那样工作的。

在本例中,“field_i_want”包含一个整数。作为我尝试过的一个例子,我这​​样做了,并且实际上将服务器锁定了几分钟:

ints = [i['field_i_want'] for i in cursor]

...仅获取整数列表。这会占用服务器上的 CPU 资源太长时间。

是否有一种非常简单的方法可以将这些结果检索到列表、元组、集合、泡菜、文件等中,并且不会完全占用 CPU?

理想情况下,我可以转储结果以便稍后读回。但我想在抛弃它们时尽可能友善。

最佳答案

我认为流式传输结果可能会有所帮助:

with open("/path/to/storage/file", "w") as f:
for row in cursor:
f.write(row['your_field'])

如果没有必要,不要将所有内容都保存在内存中。

关于python - 以资源友好的方式使用 Python 将巨大的 Mongo 结果集写入磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com