我在MongoDB中有这个文档:
{
"startPoint" : {
"longitude" : 32.0483346,
"latitude" : 34.7617836
},
"endPoint" : {
"longitude" : 32.156827,
"latitude" : 34.89211
},
}
我需要查看位置是否距起始位置5000米,我的代码是:
var longitude = parseFloat(item.startPoint.longitude);
var latitude = parseFloat(item.startPoint.latitude);
db.collection(collectionNames.RIDES, function(err, collection) {
collection.find({startPoint:
{$near:
{$geometry:
{type : "Point",
coordinates:[longitude ,latitude]}},
$maxDistance : maxDistance
}
}
)
由于某种原因,这不起作用。有任何想法吗?
答案 0 :(得分:0)
在此URL中,您可以获取有关MongoDB中$near
的信息
http://docs.mongodb.org/manual/reference/operator/query/near/#op._S_near
您的查询应该是:
db.YourCollection.find( { startPoint :
{ $near :
{ $geometry :
{ type : "Point" ,
coordinates: [ longitude, latitude ] } },
$maxDistance : 5000
} } )
因此,也许您的查询未获得$maxDistance
值。根据文件
"可选的$ maxDistance运算符限制$ near查询返回 只有那些落在一个点的最大距离内的文件。 如果查询GeoJSON点,请以米为单位指定$ maxDistance。如果 您查询旧坐标对,请在中指定$ maxDistance 弧度"