Использование mongomapper для выполнения сервера runCommand geoNear - PullRequest
2 голосов
/ 11 декабря 2011

Я бы очень хотел использовать команду mongo geoNear, как обсуждено здесь .

Вот команда, которую я ввел в консоль rails с сообщением об ошибке.

MongoMapper.database.command({ 'geoNear' => "trips", 'near' => [45,45]})
Mongo::OperationFailure: Database command 'geoNear' failed: 
  (errmsg: 'more than 1 geo indexes :('; ok: '0.0').

Я не могу понять сообщение об ошибке, предположительно невозможно иметь более 1 географического индекса, и я уверен, что создал только один.

Исходя из этого вопроса stackoverflow Я полагаю, что правильно формулирую запрос. Кто-нибудь понимает это сообщение об ошибке? Как мне уничтожить и воссоздать мои индексы?

Я использую рельсы 3.1 с mongodb v2.0 и mongo ruby ​​gem v1.5.1.

1 Ответ

6 голосов
/ 11 декабря 2011

Я правда спрашивал об этом слишком рано, может мне стоит удалить его?Каким-то образом на самом деле было слишком много географических индексов, потому что удаление индекса и его воссоздание решали проблему.

MongoMapper.database.collection('trips').drop_indexes
Trip.ensure_index [[:route, '2d']]
...