在mongoDB中找不到近处

时间:2013-12-30 09:55:20

标签: javascript mongodb

我在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
                                }
                        }
                    )

由于某种原因,这不起作用。有任何想法吗?

1 个答案:

答案 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   弧度"