I am trying to get my head around MongoDB and geospatial searches. Basically what I want is for users to be able to query documents (images) that are shot within a set distance from the users current location. So I the user is searching for all images that are shot within 1 km from where he is standing I try to use the below example but I have no idea what to set as the maxdistance value.
db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 }})
So my question is what do I set as maxdistance if I am searching for documents within a 1 km radius?
I am totally stuck here.
In order to use mongodb $near
queries with km bounds, you need to convert the radius value to km. By default mongodb $near accepts $maxDistance
as radius
.
Convert distance by 111.12
(one degree is approximately 111.12 kilometers) when using km, or leave distance as it is on using degree
to your question
what do I set as maxdistance if I am searching for documents within a 1 km radius?
you can use this
db.places.find( { loc : { $near : [50,50] , $maxDistance : 1/111.12 } } )
I have answered how to use mongo geospatial features here in detail. You can check out