我有一份工作可以为我的文档创建新字段,我希望在这项工作结束时为这些字段创建索引。 我试过了
Model.index("field"=>-1)
以及
Mongoid::Sessions.default[:rating_prediction].ensureIndex
没有成功
这可能吗?
答案 0 :(得分:15)
或多或少地说Model.index(:field => -1)
只是用Model
来记录索引的存在,它实际上并不创建索引。您正在寻找create_indexes
:
- (true) create_indexes
将实际索引创建注释发送到MongoDB驱动程序
所以你想说:
Model.index(:field => -1)
Model.create_indexes
您也可以通过调用集合create
上的indexes
直接通过Moped创建它们:
Mongoid::Sessions.default[:models].indexes.create(:field => 1)
Model.collection.indexes.create(:field => 1)
Mongoid::Sessions
已在较新版本中重命名为Mongoid::Clients
,因此您可能需要说:
Mongoid::Clients.default[:models].indexes.create(:field => 1)
Model.collection.indexes.create(:field => 1)
感谢js_注意到此更改。