gpt4 book ai didi

python - 是否可以使用 mongoengine (python) 延迟查询数据库?

转载 作者:可可西里 更新时间:2023-11-01 09:11:03 25 4
gpt4 key购买 nike

我在使用 mongoengine(在 python 中)时遇到内存问题。

假设我有大量的 custom_documents(几千个)。我想像这样处理它们:

for item in custom_documents.objects():
process(item)

问题是 custom_documents.objects() 加载内存中的每个对象,我的应用程序使用几个 GB ...

我该怎样做才能使内存更明智?有没有办法让 mongoengine 延迟查询数据库(当我们在查询集上迭代时它请求对象)?

最佳答案

根据docs (根据我的经验),collection.objects 返回一个惰性 QuerySet。您的第一个问题可能是您正在调用 objects 属性,而不是仅仅将其用作可迭代对象。我觉得你的应用程序使用这么多内存一定有其他原因,也许 process(object) 以某种方式存储对它的引用?尝试以下代码并检查您的应用程序的内存使用情况:

queryset = custom_documents.objects
print queryset.count()

由于 QuerySets 是惰性的,您也可以执行 custom_documents.limit(100).skip(500) 之类的操作,以便仅返回对象 500-600。

关于python - 是否可以使用 mongoengine (python) 延迟查询数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841359/

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