Mongoid 4 (GitHub から直接マスター ブランチ) を使用する Rails 4.0.3 アプリにモデルがあり、複数のフィールドのインデックスが一意であることを確認し、重複を削除しようとしています。
class MyModel
include Mongoid::Document
field :a, type: Integer
field :b, type: Integer
index({a: 1, b: 1}, {unique: true, dropDups: true, name: 'unique_drop_dups_idx'})
しかし、コマンドを実行してインデックスを作成すると、次のようになります。
rake db:mongoid:create_indexes
次のエラーが表示されます。
Problem:
Invalid index specification on MyModel: {:a=>1, :b=>1}, {:unique=>true, :dropDups=>true, :name=>"unique_drop_dups_idx"}
Summary:
Indexes in Mongoid are defined as a hash of field name and direction/2d pairs, with a hash for any additional options.
Resolution:
Ensure that the index conforms to the correct syntax and has the correct options.
dropDups
重複が存在するために最終的に失敗した場合でも、オプションを削除すると、インデックスの作成が開始されます。
unique
このエラー メッセージは、この構成 ( + )では複数のフィールドにインデックスを作成できないことを意味しますdropDups
か? 他に何か不足していますか?