当前位置: 首页 > 知识库问答 >
问题:

Spring boot mongo db索引(UNIQUE=TRUE)

闻人献
2023-03-14

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

   @Indexed(unique = true)
    private String name;

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

@Indexed(unique = false)
    String id;

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

共有1个答案

盖弘毅
2023-03-14

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

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

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

db.collection_name.getIndexes();

如果存在一个索引,则不能创建另一个同名的索引。

 类似资料:
  • 本文向大家介绍MySQL索引类型Normal、Unique和Full Text的讲解,包括了MySQL索引类型Normal、Unique和Full Text的讲解的使用技巧和注意事项,需要的朋友参考一下 MySQL的索引类型有普通索引(normal),唯一索引(unique)和全文索引(full text),合理使用索引可大大提升数据库的查询效率,下面是三种类型的索引的介绍 normal:这是最基

  • 问题内容: 我想将唯一索引放在表中的两个(或更多)列上,但是我得到“找到重复的键”。如何选择那些导致重复的行? 问题答案: 您可以为此使用和: 基本上-将值分组,然后过滤不止一个的实例。

  • 问题内容: 我应该在列上 定义一个单独的索引(出于搜索目的),还是该索引是“自动”与约束一起添加的? 编辑 :根据科宾的建议,我在空桌上查询。这是结果,我不知道如何解释: 将IXD_EMAIL添加到表中时,相同的查询显示: 问题答案: 一个 独特的关键 是指数的一个特例,像个与独特性增加检查的常规指标。使用您可以看到您的唯一键实际上是B树类型索引。 一个 综合指数 上是不够的,你不需要只电子邮件单

  • 问题内容: 我有一个表,与3列:,,和。我有关于列和的索引。 我尝试了这个插入选项: 可以的。比我尝试过的一个(请参阅 Ané - e急性 ): 并且我收到此错误消息: MySQL不知何故在“ Ane”和“Ané”之间没有任何区别。我如何解决这个问题以及为什么会这样? 表学生的字符集为“ utf8”,排序规则为“ utf8_general_ci”。 以后的edit1:@Crozin: 我已更改为使

  • 我不明白我在列表中唯一的键有什么问题。我有上述错误: 警告:列表中的每个孩子都应该有一个唯一的“键”道具。检查

  • 此函数返回输入数组中的唯一元素数组。 该函数可以返回唯一值数组的数组和关联索引数组。 索引的性质取决于函数调用中返回参数的类型。 numpy.unique(arr, return_index, return_inverse, return_counts) Where, Sr.No. 参数和描述 1 arr 输入数组。 如果不是一维阵列,将会变平 2 return_index 如果为True,则返