2013-07-14 10 views
5

再現手順mongoid:create_indexesMongoid "なし地理指数:(" エラー

は呼び出ししようとしました:

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 :(" 

提案がありますか。

+1

ためRAILS_ENV=testでレーキdb:mongoid:create_indexesを行うことを忘れてしまいました@long]) '' 'とあなたのエラーダンプにも反映されます。真の球面ジオインデックスを実装しているので、代わりに2dsphereインデックスを使用することを検討してください。 – Derick

答えて

14

愚かな間違いは、あなたが@ LAT [(周りの `` `Venue.geo_near中緯度と長い間違った方法を持っているRSpecの

完全なコマンド

bundle exec rake db:mongoid:create_indexes RAILS_ENV=test 
+0

私の時間を節約...受け入れ – Sai

+0

人に尋ねて返信してくれてありがとう。私はそれをしなければならないことを知らなかった。それはmongoidの文書のどこかに置かれていますか? – JGutierrezC