Spring boot mongo db index(unique = true)

时间:2017-11-20 13:43:18

标签: mongodb spring-boot

我正在尝试使用spring-boot中的@Indexed注释在java类中为我的集合创建唯一索引。当我在集合文档的pojo中的字段上使用@Indexed时:

   @Indexed(unique = true)
    private String name;

其中name字段包含由英文字母组成的字符串,我想停止重复输入name字段。字段名称不是唯一的,我可以添加具有重复名称字段的文档。为了使它工作,我必须使id字段unique = false:

@Indexed(unique = false)
    String id;

这是正确的方法,我们可以使id字段唯一= false并使其他字段unique = true以使该字段唯一。

1 个答案:

答案 0 :(得分:0)

我不确定@Indexed(unique = false)如何让您定义唯一索引。

但事实是,如果已经存在名称的索引,您试图插入另一个文档,那么它将不允许您插入。因为索引是唯一的。

您可以检查是否创建了mongoDB,如下所示:

db.collection_name.getIndexes();

如果存在索引,则无法创建具有相同名称的另一个索引。