我正在使用 Spring Data MongoDB 开发一个应用程序。我想在我的一个模型上创建一个复合索引。我在顶部添加了一个@CompoundIndex 注释,如下所示:
@Document
@CompoundIndexes({
@CompoundIndex(name = "name_", def = "{ 'tenantId': 1, 'name': 1 }", unique = true)
})
public class MyModel {
}
但是,没有创建索引。我还尝试将 @CompoundIndex
直接放在类上方。该集合仍然缺少索引。像这样创建时,相同的索引定义可以正常工作:
mongoTemplate.indexOps(MyModel.class).ensureIndex(new Index().named("name_").on("tenantId", Direction.ASC).on("name", Direction.ASC).unique());
我更喜欢使用基于注释的索引定义。任何想法为什么这不起作用?
最佳答案
您需要在 application.properties
中添加以下内容:
spring.data.mongodb.auto-index-creation=true
或在 application.yml
中:
spring:
data:
mongodb:
auto-index-creation: true
关于java - @CompoundIndex 在 Spring Data MongoDB 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30774376/