В дополнение к ответу Larry0ua.
А почему бы не установить собственный номинатим сервер?
http://wiki.openstreetmap.org/wiki/Nominatim/Installation
Если интересен алгоритм, то вот:
https://help.openstreetmap.org/questions/30512/how-does-nominatim-reverse-geocode
https://github.com/twain47/Nominatim/blob/edc5733715a65158919c1abc4d765b754f5dc659/lib/ReverseGeocode.php
Если всё же MongoDB.
AFAIK, монго умеет geospatial запросы.
Не забудьте фильтрануть по тегу highway.
В монго есть такой вот оператор $near
http://docs.mongodb.org/manual/reference/operator/query/near/
Надо только научиться им пользоваться.