重现步骤:
class Venue
field :coordinates, type: Array
index({coordinates: '2d'}, {min: -180, max: 180})
end
已经运行 rake db:mongoid:create_indexes
尝试调用:
Venue.geo_near([@lat, @long])
得到:
Moped::Errors::OperationFailure:
The operation: #<Moped::Protocol::Command
@length=135
@request_id=3
@response_to=0
@op_code=2004
@flags=[]
@full_collection_name="encore_backend_test.$cmd"
@skip=0
@limit=-1
@selector={:geoNear=>"venues", :near=>[43.670906, -79.393331], :query=>{}, :spherical=>true}
@fields=nil>
failed with error "no geo index :("
有什么建议吗?
最佳答案
愚蠢的错误,忘记为 RSpec 使用 RAILS_ENV=test
进行 rake db:mongoid:create_indexes
完整的命令
bundle exec rake db:mongoid:create_indexes RAILS_ENV=test
关于ruby-on-rails - Mongoid "no geo index :("错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17644153/