Как новичок, я пытался заставить команду geoNear работать в моем приложении rails, и, похоже, она работает нормально. Для меня главное раздражение в том, что он возвращает массив со строками, а не ключами, которые я могу вызвать для извлечения данных.
Покопавшись, я понимаю, что MongoMapper использует Plucky для превращения результирующего запроса в дружественный объект, который может быть легко обработан, но я не смог выяснить, как преобразовать результат моего запроса geoNear в plucky объект.
Мои вопросы:
(а) Можно ли превратить это в отважный предмет и как мне это сделать?
(б) Если это невозможно, как я могу наиболее просто и систематически извлечь каждую запись и каждое поле?
вот запрос в моем контроллере
@mult = 3963 * (3.14159265 / 180 ) # Scale to miles on earth
@results = @db.command( {'geoNear' => "places", 'near'=> @search.coordinates , 'distanceMultiplier' => @mult, 'spherical' => true})
Вот объект, который я возвращаю (содержание документа удалено для простоты)
{"ns"=>"myapp-development.places", "near"=>"1001110101110101100100110001100010100010000010111010", "results"=>[{"dis"=>0.04356444023196527, "obj"=>{"_id"=>BSON::ObjectId('4ee6a7d210a81f05fe000001'),...}}], "stats"=>{"time"=>0, "btreelocs"=>0, "nscanned"=>1, "objectsLoaded"=>1, "avgDistance"=>0.04356444023196527, "maxDistance"=>0.0006301239824196907}, "ok"=>1.0}
Помощь очень ценится!