我目前有一个相当大的数据库(约250米文件)的MongoDB设置。目前,我有一个主要集合,其中大部分数据都具有单一索引(时间)。只有时间位于查询的where部分(使用索引)时,这会导致可接受的查询时间。MongoDB查询子集
问题是当我需要使用复合键 - 时间索引使用大约2.5GB的内存,并且我只有4GB的服务器,所以我不想创建复合键索引,因为那样会阻止所有索引适应内存,从而使事情减慢很多。
所以我的问题是这样的:我可以先查询时间,然后查询其他变量的子集?
我应该指出我正在使用Ruby驱动程序。
此刻,我的查询看起来是这样的(这是很慢):
trade_stop_loss_time = ticks.find_one({
"time" => { "$gt" => trade_time_open, "$lte" => trade_time_close },
"bid" => { "$lte" => stop_loss_price }
}).sort({"time" => 1})
谢谢!