我按照以下标准查询文件位置
db.collection.find({
"location": {
"$geoWithin": {
"$box": [
[165.8694369, -52.61941849999999],
[-175.831536, -29.2313419]
]
}
}
});
我应该使用哪种索引类型作为位置字段2d
或2dsphere
?
答案 0 :(得分:1)
查询使用平面(平面)几何计算距离。
版本2.2.3中更改:应用程序可以使用$ box而不使用地理空间索引。但是,地理空间索引支持比未索引的等价物快得多的查询。在2.2.3之前,在使用任何地理空间查询运算符之前,必须在包含坐标的字段上存在地理空间索引。
只有2d地理空间索引支持$ box。
球面
要在类似地球的球体上计算几何体,请将您的位置数据存储在球面上并使用2dphere索引。
使用此坐标轴顺序将您的位置数据存储为GeoJSON对象:经度,纬度。 GeoJSON的坐标参考系统使用WGS84数据。
平
要计算欧几里德平面上的距离,请将您的位置数据存储为旧坐标对,并使用2d索引。