Метод Rails Geocoder почти ограничивает результаты до 100

Я работаю с Rails, Mongoid и Geocoder. Моя проблема заключается в том, что Location.near ограничивает возвращаемые результаты до 100, даже для результатов, которые должны давать более 100. Мне нужен способ вернуть все результаты для любого местоположения.

Location.near([28.4989, -87.7271], 1).count
=> 100

Я попробовал несколько методов, и похоже, что я должен делать что-то похожее на следующее, которое по-прежнему возвращает 100.

Location.near([28.4989, -87.7271]).limit(200).count
=> 100

Изменить: похоже, что это известная проблема с методом near и его ограничением по умолчанию, равным 100. Мне удалось найти монгоидный запрос, который возвращает все результаты.

Location.where(:coordinates.within => { "$center" => [ [-87.7271, 28.4989], 0.01] }).count
=> 186

person threatagent    schedule 08.09.2012    source источник


Ответы (1)


Похоже, это известная проблема с методом near и его ограничением по умолчанию, равным 100. Мне удалось найти монгоидный запрос, который возвращает все результаты.

Location.where(:coordinates.within => { "$center" => [ [-87.7271, 28.4989], 0.01] }).count
=> 186
person threatagent    schedule 09.09.2012
comment
Хм... Я получаю сообщение об ошибке: NoMethodError (неопределенный метод "внутри" для :coordinates:Symbol) -- я что-то пропустил. Мне очень интересно, как вы заработали, будучи новичком в Mongo/Mongoid/Geocoder. - person Tim Stephenson; 23.01.2013
comment
Та же проблема, что и у Тима. Интересно, произошли ли изменения в API. Отпишусь, если найду ответ. - person mcginniwa; 09.09.2013
comment
Это то, что работает для меня: Location.where(:coordinates => { "$within" => { "$center" => [[-87.7271, 28.4989], 1 ]}}) - person mcginniwa; 09.09.2013