面试题答案
一键面试- 创建2d索引:
在MongoDB的
mongo
shell中,可以使用以下命令为location
字段创建2d索引:
这里db.城市集合名.createIndex({location: "2d"});
城市集合名
需要替换为实际存储城市经纬度信息的集合名称。 - 查询距离某个给定经纬度点100公里内的城市:
假设给定的经纬度点为
[longitude, latitude]
,100公里转换为弧度(MongoDB查询距离时使用弧度),1公里约等于0.015708弧度,100公里就是100 * 0.015708 = 1.5708
弧度。
同样,这里var longitude = 给定经度值; var latitude = 给定纬度值; var distanceInRadians = 1.5708; db.城市集合名.find({ location: { $near: { $geometry: { type: "Point", coordinates: [longitude, latitude] }, $maxDistance: distanceInRadians } } });
城市集合名
需要替换为实际的集合名称,给定经度值
和给定纬度值
替换为具体的经纬度数值。