【发布时间】:2020-04-19 14:36:24
【问题描述】:
我正在尝试在 Python 中迭代大型 Mongodb 数据库的所有元素。
通常,我会这样做:
mgclient = MongoClient('mongodb://user:pwd@0.0.0.0:27017')
mgdb = mgclient['mongo']
mgcol = mgdb['name']
for mg_ob in mgcol.find().sort('Date').sort('time'):
#DOTHINGS
但它显示“排序操作使用的 RAM 超过了最大 33554432 字节。添加索引,或指定更小的限制”。
所以我创建了一个名为“SortedTime”的索引,但我现在不明白如何使用它。
基本上,我想拥有类似的东西:
mgclient = MongoClient('mongodb://user:pwd@0.0.0.0:27017')
mgdb = mgclient['mongo']
mgcol = mgdb['name']
for mg_ob in mgcol.find()['SortedTime']:
#DOTHINGS
有什么想法吗?小手将不胜感激。
我希望这篇文章对其他人有所帮助。非常感谢
更新: 感谢乔,我设法使它工作。创建索引后:
resp = mgcol.create_index(
[
("date", 1),
("time", 1)
]
)
print ("index response:", resp)
我所做的只是:
mgclient = MongoClient('mongodb://user:pwd@0.0.0.0:27017')
mgdb = mgclient['mongo']
mgcol = mgdb['name']
for mg_ob in mgcol.find():
#DOTHINGS
不需要使用索引名称。
【问题讨论】:
标签: python mongodb loops indexing