Mongodb-子文档数组上的多键索引生成奇怪的解释计划
如果我插入以下文件:Mongodb-子文档数组上的多键索引生成奇怪的解释计划,mongodb,indexing,mongodb-query,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, $
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]”?这在MongoDB 3.4中是固定的: