如何使用Mongoid重新索引集合?

时间:2013-09-11 17:00:42

标签: mongoid

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

rake db:create_indexes

但如果我错了,请纠正我,是不是创建了与实际索引所有项目不同的索引?我怎样才能重新索引我的文档?如果我在Rails中为新集合添加索引但数据库中已有10,000个项目,那么这是必要的。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

Mongoid db:create_indexes只调用Mongodb上的ensure_index

在Mongodb上确保新索引时,它将创建索引并重新索引集合上现有的文档。你必须对此感到满意,因为Mongodb将锁定数据库,直到索引完全正常运行。 如果你有10k物品,它应该只锁定几分钟,也许更少。但如果你超过百万个文档,那么你必须以其他方式去做。