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