Mongoid 提供了一些 rake 任务,其中之一为数据库中的所有集合创建索引:
耙分贝:create_indexes
但是,如果我错了,请纠正我,创建索引是否与实际索引所有项目不同?如何重新索引我的文档?如果我向 Rails 中的新集合添加索引但数据库中已经有 10,000 个项目,这将是必要的。
Mongoid 提供了一些 rake 任务,其中之一为数据库中的所有集合创建索引:
耙分贝:create_indexes
但是,如果我错了,请纠正我,创建索引是否与实际索引所有项目不同?如何重新索引我的文档?如果我向 Rails 中的新集合添加索引但数据库中已经有 10,000 个项目,这将是必要的。
我认为您必须手动删除旧索引并创建模型中指定的新索引。
Model.remove_indexes
Model.create_indexes
Mongoid db:create_indexes 只调用ensure_index
Mongodb 上的。
在 Mongodb 上,当您确保一个新索引时,它将创建索引并重新索引集合中的现有文档。你必须小心,因为 Mongodb 将锁定数据库,直到索引完全正常工作。如果您有 10k 个项目,它应该只锁定几分钟,也许更短。但是,如果您查看超过一百万个文档,则必须以其他方式进行。