Spring boot / mongo 不会使用索引注释创建索引

Jon*_*s B 7 mongodb spring-boot

我有以下几点:

@Document(collection = "linkmetadata")
public class LinkMetaData {
@Indexed(unique = true)
private String url;
...
}
Run Code Online (Sandbox Code Playgroud)

但是每当它创建集合时,它都不会为 url 字段创建任何索引,就像它只是忽略了注释。知道这是为什么吗?

编辑:插入数据时也不会创建索引。当我尝试为特定 url 获取数据时,如果我两次输入相同的 url,它会抛出一个错误,即 url 键不是唯一的,但它不关心插入唯一键,因为没有索引..

小智 25

auto-index-creation: true在您的应用程序属性中使用。在您的应用程序中添加波浪线。属性

spring.data.mongodb.auto-index-creation: true
Run Code Online (Sandbox Code Playgroud)


Jon*_*s B 4

我发现了问题。我有另一个集合,其中的 url 字段也标记为 unqiue。我必须在其中一个上指定索引的名称,否则似乎认为该索引已经存在,即使它位于两个不同的集合上

@Indexed(name = "meta_url_index_unique", unique = true)
private String url;
Run Code Online (Sandbox Code Playgroud)