Mongo find找不到正确的索引

时间:2017-01-10 21:59:48

标签: mongodb indexing mongoose

我只是创建一个新索引,在mongoose的帮助下添加它:

test.index({"source": 1, "tickers.exchange": 1, "tickers.symbol": 1, "report_date": -1});

在db中 - 我可以看到索引已正确添加:

Index Value: source_1_tickers.exchange_1_tickers.symbol_1_report_date_-1

现在,当我尝试执行与索引完全匹配的查询时,它仍然不会使用此索引而是使用其他索引:

db.getCollection('test').find({
    source: 'testSource',
    'tickers.exchange': { $all: ['TEST_EXCHANGE'] },
    'tickers.symbol': { $all: ['TEST_SYMBOL'] },
    report_date: { $gte: ISODate('2016-07-01T00:00:00.000Z'), 
                   $lte: ISODate('2016-09-30T23:59:59.999Z') },
    change: { $gt: 0 }
})

我使用explain('executionStats');来查看使用哪个索引产生以下内容:

tickers.symbol_1_change_1_report_date_1

试图找出原因

0 个答案:

没有答案