私は現在、RubyonRailsアプリケーションにMongoidモデルを持っています。
class Listen
include Mongoid::Document
field :song_title, type: String
field :song_artist, type: String
field :loc, :type => Array
field :listened_at, type: Time, default: -> { Time.now }
index(
[[:loc, Mongo::GEO2D]], background: true
)
end
たとえば、コレクションをクエリしようとすると
listens = Listen.where(:loc => {"$within" => {"$centerSphere" => [location, (radius.fdiv(6371))]}})
エラーが返されます(場所は空白になり、Xは返されません)
Mongo::OperationFailure (can't find special index: 2d for: { loc: { $within: { $centerSphere: [ [ XX.XXXXXXX, X.XXXXXXX ], 0.0001569612305760477 ] } } }):
次のようなレーキタスクを使用してインデックスを作成できることはわかっていますrake db:mongoid:create_indexes
が、モデルを作成するたびにこれを行う必要はありません。コレクションへの挿入時にモデルがこれを自動的に作成する方法はありますか?