加快包含大型文档的mongodb查找查询

时间:2018-07-03 22:18:17

标签: mongodb pymongo

我有一个大约5GB的mongo集合,其中包含大约20万个文档。每个文件都有一个名称,货币和日期,然后是一个大字符串(这是我感兴趣的数据),每个文件的总大小约为5MB。

我的问题是我需要尽快找到250个不同日期的特定名称和货币。

我正在使用

db.collection.find(
{'name': somename, 'currency': mycurrency, 
'valuation_date': {'$in': [list_of_250_datetime_datetime]}
}) [see more detailed query in the update below]

当前速度非常令人失望,因为当我在本地主机上运行mongod服务器时,似乎每秒只能下载约10个文档。

我还添加了名称,货币和日期的索引,以及复合索引。添加索引可使速度提高约25%。

还有什么我可以做的,以加快从mongodb加载这些文档的速度?

值得注意的是:无法拆分文档,因为我需要每个日期/名称/货币的大数据字符串,并且我对该部分无权控制。

任何建议都值得赞赏。


更新:

这是正在发生的事情的更详细的资料:

这里是完整的查询: Pymongo大约需要916秒才能处理94秒,而3t studio的前100个要花费6秒。

db.ForecastCurveId.find({ 'Ccy': 'USD', 'Class': 'ForecastCurveId', 'Index': 'LIBOR', 'Tenor': '12M', 'source': {'$in': ['ods']}, 'valuation_date': {'$gte': new Date("2015-11-09"), '$lte': new Date("2016-11-07")}})

enter image description here

如果我使用pymongo,请在此处查看个人资料: enter image description here

0 个答案:

没有答案
相关问题