使用mongomapper执行服务器runCommand geoNear

时间:2011-12-11 03:24:27

标签: ruby-on-rails mongodb mongomapper

我非常想使用所讨论的mongo geoNear命令here

这是我在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 question我相信我正确地写了一下查询。有谁知道这个错误信息?我将如何破坏和重新创建索引?

我使用的是带有mongodb v2.0的rails 3.1和mongo ruby​​ gem v1.5.1。

1 个答案:

答案 0 :(得分:6)

我过早地问过这个问题,也许我应该删除它?事实上,实际上有太多的地理索引,因为删除索引并重新创建它可以解决问题。

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