3

Mongoid 提供了一些 rake 任务,其中之一为数据库中的所有集合创建索引:

耙分贝:create_indexes

但是,如果我错了,请纠正我,创建索引是否与实际索引所有项目不同?如何重新索引我的文档?如果我向 Rails 中的新集合添加索引但数据库中已经有 10,000 个项目,这将是必要的。

4

2 回答 2

5

我认为您必须手动删除旧索引并创建模型中指定的新索引。 Model.remove_indexes Model.create_indexes

于 2015-12-07T07:38:32.980 回答
0

Mongoid db:create_indexes 只调用ensure_indexMongodb 上的。

在 Mongodb 上,当您确保一个新索引时,它将创建索引并重新索引集合中的现有文档。你必须小心,因为 Mongodb 将锁定数据库,直到索引完全正常工作。如果您有 10k 个项目,它应该只锁定几分钟,也许更短。但是,如果您查看超过一百万个文档,则必须以其他方式进行。

于 2013-09-11T20:08:54.050 回答