在数据库查询中按经纬度对位置进行排序
- 在数据库(MongoDB)中存储的对象有
latitude and longitude
。 - 例如,我在服务器(Tomcat)上与
latitude and longitude
有指针。
我要创建query
,它将根据对象的latitude and longitude
,按距离该点的距离(从最近到最远)对所有对象进行排序。
有没有人能帮帮我,怎么做这样的查询?我只是不知道当我只有latitude and longitude
时如何按距离排序的规则。
数据库中的对象结构:{"id","name","latitude","longitude"}
解决方案
从Mongo DB帮助页面-您可以使用$NEAR 所有结果从所需的点数开始从最近的一个到最远的一个排序
MongoDB near help ...
语法:
{
$near: {
$geometry: {
type: "Point" ,
coordinates: [ <longitude> , <latitude> ]
},
$maxDistance: <distance in meters>,
$minDistance: <distance in meters>
}
}
和可用的示例
db.places.find(
{
location:
{ $near :
{
$geometry: { type: "Point", coordinates: [ -73.9667, 40.78 ] },
$minDistance: 1000,
$maxDistance: 5000
}
}
}
)
相关文章