我目前在 Ruby on Rails 应用程序中有一个 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 任务创建索引,rake db:mongoid:create_indexes
但我不想每次创建模型时都必须这样做。模型有什么方法可以在插入集合时自动创建它?