我将Doc对象存储在mongodb存储库中,确保条形码属性在整个集合中是唯一的:
@Document(collection = "Doc")
public class Doc {
@Id
private String id;
@Indexed(unique = true)
private String barcode;
...
}
我还存储了一个DocAudit集合,该集合将Doc列表存储为子文档:
@Document(collection = "DocAudit")
public class DocAudit {
@Id
private String id;
private List<Doc> docs;
...
}
在生成DocAudit条目时,同一个Doc可以出现在两个或多个DocAudit条目的文档列表中。
Doc对象的条形码属性上的@Indexed(unique = true)会在Doc.barcode(所需)和DocAudit.docs.doc.barcode(不需要的)上自动生成mongodb索引
避免自动生成不需要的索引的最佳方法是什么? 或者,一旦创建了不需要的索引,最好的方法是什么?
答案 0 :(得分:0)
DocAudit 当然具有 Doc 的这些属性,因为 DocAudit 是继承者。
为了实现您的目标,您可以考虑以下之一:
without
该注释,然后由 DocAudit继承; 创建索引然后立即删除是不好的。