Mongodb - 子文档数组的多键索引产生奇怪的解释计划

时间:2017-02-05 17:01:16

标签: mongodb indexing mongodb-query

如果我插入以下文件:

db.test.insertOne({ main_data : 100, sub_docs: [{ data : 22 },{ data : 859 },{ data: 151 }]}  

使用以下方法在其上创建索引:

db.test.createIndex({"sub_docs.data" : 1})

当我执行查询以尝试使用以下内容匹配数据时:

db.test.find({ sub_docs: { $elemMatch: { data: { $gte: 110, $lt: 160 }}}})

为什么解释计划显示索引从inf.0或-inf.0开始到$ elemMatch的一个边界?例如:

"indexBounds" : {
    "sub_docs.data" : [
        "[110.0, inf.0]"
    ]
}

为什么没有界限" [110.0,160.0]"?

1 个答案:

答案 0 :(得分:1)

这已在MongoDB 3.4中修复:

https://jira.mongodb.org/browse/SERVER-15086