Nói Model.index(:field => -1)
, dù ít hay nhiều, chỉ cần đăng ký sự tồn tại của chỉ mục với Model
, nó không thực sự tạo ra một chỉ mục. Bạn đang tìm kiếm create_indexes
:
Vì vậy, bạn muốn nói:
Model.index(field: -1)
Model.create_indexes
Bạn cũng có thể tạo chúng trực tiếp thông qua Moped bằng cách gọi create
trên các chỉ mục indexes
của bộ sưu tập
:
Mongoid::Sessions.default[:models].indexes.create(field: -1)
Model.collection.indexes.create(field: 1)
# or in newer versions:
Model.collection.indexes.create_one(field: 1)
Mongoid::Sessions
đã được đổi tên thành Mongoid::Clients
trong các phiên bản mới hơn, vì vậy bạn có thể cần phải nói:
Mongoid::Clients.default[:models].indexes.create(field: 1)
Model.collection.indexes.create(field: 1)
# or in even newer versions:
Model.collection.indexes.create_one(field: 1)
Cảm ơn js_ và mltsy để ghi nhận những thay đổi này.