面试题答案
一键面试-
两种常见的地理空间查询类型:
- 基于距离的查询:查找与某个特定地理位置点距离在一定范围内的文档。例如,查找距离某个城市100公里内的所有商店。
- 基于几何形状的查询:比如查找位于某个多边形区域内的所有地点,像查找位于某个行政区域多边形内的所有学校。
-
使用
$near
操作符进行基于地理位置的查询: 假设集合cities
存储了城市的经纬度信息,文档格式类似{name: "CityName", location: [longitude, latitude]}
。
db.cities.find({
location: {
$near: {
$geometry: {
type: "Point",
coordinates: [yourLongitude, yourLatitude]
},
$maxDistance: yourMaxDistanceInMeters
}
}
});
在上述示例中,[yourLongitude, yourLatitude]
替换为目标查询的经纬度,yourMaxDistanceInMeters
替换为期望的最大距离(单位为米)。