Mongodb在[lng,lat]附近的线串$get点
我有一个包含行字符串的文档。是否可以基于一对坐标查找并返回线串中最近的点Mongodb在[lng,lat]附近的线串$get点,mongodb,mongoose,Mongodb,Mongoose,我有一个包含行字符串的文档。是否可以基于一对坐标查找并返回线串中最近的点 db.paths.find( { loc : { $near : { $geometry : { type : "Point" , coordinates : [-73.965355,40.782865] }, $maxDistance : 20000 } } ); // My
db.paths.find(
{
loc : {
$near : {
$geometry : {
type : "Point" ,
coordinates : [-73.965355,40.782865]
},
$maxDistance : 20000
}
}
);
// My "path" document
loc:{
"type": "LineString",
"coordinates": [
[-2.551082,48.5955632],
[-2.551229,48.594312],
[-2.551550,48.593312],
[-2.552400,48.592312],
[-2.553677, 48.590898]
]
}
从MongoDB v2.4(目前为v3.2)开始,LineString
是受支持的GeoJSON对象之一。看
创建loc
字段后,可以查询最近的点
使用示例文档,mongo shell查询将是:
db.path.find({
地点:{
$nearSphere:{
$geometry:{
键入:“点”,
座标:[-2.551010,48.59123]
},
$maxDistance:2000
}
}
});
请注意,$maxDistance
以米为单位。您的示例find()
坐标远远超出您指定的最大距离
有关v3.2信息,请参阅或操作员 返回整个线字符串,而不是线字符串上的一个点。