我在使用 Morhia 的字段上有一个现有索引。
@Indexed
public String field;
现在我想将其转换为唯一索引。
@Indexed(unique = true)
public String field;
在应用程序启动时,我调用 db.ensureIndexes() - 但是索引的唯一性并未反映在 mongo 中。
为什么会失败?实现这一目标的最佳方法是什么?
MongoDB中索引的属性创建后不能修改;因此您不能直接将非唯一索引转换为唯一索引。您必须手动删除索引,然后才能将其重新创建为唯一索引。您可以直接使用 mongo shell 执行此操作:请参阅http://www.mongodb.org/display/DOCS/Indexes#Indexes-DroppingIndexes。