我正在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等。
期待一些建议
1条答案
按热度按时间sbdsn5lh1#
首先是使用列表理解优化列表,例如:
第二,如果你不需要文档中的所有字段,就使用projection,它是一个包含你需要返回的所有字段的对象。在你的find查询中使用
projection = { name: 1, address: 1}
,你的所有文档只返回name,address字段,还有_id。