python-3.x 优化Pymongo查询时间

axr492tv  于 2022-12-15  发布在  Python
关注(0)|答案(1)|浏览(177)

我正在mongo数据库上运行一个查询,并寻找一个解决方案来优化所花的时间。
我的查询类似于collection.find({'nameId':989080880,'Date':{'$gte':startDate}})
我所做的如下

pd.DataFrame(collection.find({'nameId':989080880,'Date':{'$gte':startDate}}))

此查询占用:x毫秒
然后我试着

document=[]
for doc in collection.find({'nameId':989080880,'Date':{'$gte':startDate}}):
   document.append(doc)

但是它在x毫秒上仅给出15%的改进
无法索引,因为“nameId”是长整数,索引将需要更多的RAM等。
期待一些建议

sbdsn5lh

sbdsn5lh1#

首先是使用列表理解优化列表,例如:

document=[doc for doc in collection.find({'nameId':989080880,'Date':{'$gte':startDate}})]

第二,如果你不需要文档中的所有字段,就使用projection,它是一个包含你需要返回的所有字段的对象。在你的find查询中使用projection = { name: 1, address: 1},你的所有文档只返回name,address字段,还有_id。

相关问题