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在我的回答中添加了更多信息