Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb-子文档数组上的多键索引生成奇怪的解释计划_Mongodb_Indexing_Mongodb Query - Fatal编程技术网

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中是固定的: