Mike
Запрашиваемая вами функция называется документами с несколькими местоположениями. Это не поддерживается в текущей стабильной версии 1.8.2. Это доступно только с версии 1.9.1.
И Querying является простым при использовании mongoid, вот так
City.near("stores.location" => @location)
И будьте осторожны при использовании близких запросов в документах с несколькими местоположениями, поскольку один и тот же документ может быть возвращен несколько раз, поскольку запросы $ near возвращают упорядоченные результаты по расстоянию. Вы можете прочитать больше об этом здесь .
Вместо этого используйте $ внутри запроса, чтобы получить правильные результаты
Тот же запрос, написанный с использованием $ inside и $ centerSphere
EARTH_RADIUS = 6371
distance = 5
City.where("stores.location" => {"$within" => {"$centerSphere" => [@location, (distance.fdiv EARTH_RADIUS)]}})