我使用@Index(unique = true)注释文档,如下所示:
public class ADocumentWithUniqueIndex {
private static final long serialVersionUID = 1L;
@Indexed(unique = true)
private String iAmUnique;
public String getiAmUnique() {
return iAmUnique;
}
public void setiAmUnique(String iAmUnique) {
this.iAmUnique = iAmUnique;
}
}
保存对象时,我指定了自定义集合:
MongoOperations mongoDb = ...
mongoDb.save(document, "MyCollection");
结果我得到了:
如何在" MyCollection"中创建索引?而不必在注释中明确指定它?
背景:
这似乎是隐藏基础架构组件中持久性详细信息的一种相当标准的方法。对方法的任何评论都会受到赞赏。
答案 0 :(得分:1)
为要存储的对象定义集合并期望索引注释起作用是很不寻常的。你有几个选择:
在@Document
上使用ADocumentWithUniqueIndex
并手动配置集合名称。这将导致该类的所有对象保持在该集合中。
通过MongoOperations.indexOps()
手动将索引创建到您要使用的集合中。这与在持久性操作期间手动确定集合名称的方法更为一致。