Units to use for maxdistance and MongoDB?

Jonathan Clark picture Jonathan Clark · Oct 20, 2011 · Viewed 18.4k times · Source

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.

Answer

RameshVel picture RameshVel · Oct 20, 2011

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