Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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 我应该使用哪个索引进行$GEOIN搜索?_Mongodb_Indexing_Mongoose_Mongodb Query_Geospatial - Fatal编程技术网

Mongodb 我应该使用哪个索引进行$GEOIN搜索?

Mongodb 我应该使用哪个索引进行$GEOIN搜索?,mongodb,indexing,mongoose,mongodb-query,geospatial,Mongodb,Indexing,Mongoose,Mongodb Query,Geospatial,我使用以下条件按文档的位置查询文档 db.collection.find({ "location": { "$geoWithin": { "$box": [ [165.8694369, -52.61941849999999], [-175.831536, -29.2313419] ] } } }); 我应该为位置字段使用哪种索引类型2d

我使用以下条件按文档的位置查询文档

db.collection.find({
    "location": {
        "$geoWithin": {
            "$box": [
                [165.8694369, -52.61941849999999],
                [-175.831536, -29.2313419]
            ]
        }
    }
});
我应该为位置字段使用哪种索引类型
2d
2dsphere

引用

查询使用平面(平面)几何图形计算距离

在版本2.2.3中更改:应用程序可以使用$box,而无需地理空间索引。但是,地理空间索引支持的查询速度比未索引的索引要快得多。在2.2.3之前,在使用任何地理空间查询运算符之前,必须在包含坐标的字段上存在地理空间索引

只有二维地理空间索引支持$box


球形

要计算类地球球体上的几何体,请将位置数据存储在球面上,并使用2dsphere索引

使用以下坐标轴顺序将位置数据存储为GeoJSON对象:经度、纬度。GeoJSON的坐标参考系使用WGS84基准


平坦的

要计算欧几里德平面上的距离,请将位置数据存储为传统坐标对,并使用二维索引


谢谢你的回复。但是$box只是一个例子,所以我可以使用$geometry和Poligoninstead@Erik您可能需要阅读,谢谢您的参考,但我还不知道我应该使用平面还是球面来进行查询?@Erik在我的回答中添加了更多信息