Fyn*_*ynn 7 java indexing spring mongodb spring-data-mongodb
我正在使用Spring Data MongoDB处理应用程序.我想在我的一个模型上创建一个复合索引.我在顶部添加了@CompoundIndex注释,如下所示:
@Document
@CompoundIndexes({
@CompoundIndex(name = "name_", def = "{ 'tenantId': 1, 'name': 1 }", unique = true)
})
public class MyModel {
}
Run Code Online (Sandbox Code Playgroud)
但是,不会创建索引.我也试过直接放置@CompoundIndex上面的类.该集合仍然缺少索引.创建时,相同的索引定义正常工作:
mongoTemplate.indexOps(MyModel.class).ensureIndex(new Index().named("name_").on("tenantId", Direction.ASC).on("name", Direction.ASC).unique());
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用索引的基于注释的定义.任何想法为什么这不起作用?
您需要将以下内容添加到application.properties:
spring.data.mongodb.auto-index-creation=true
Run Code Online (Sandbox Code Playgroud)
或在application.yml:
spring:
data:
mongodb:
auto-index-creation: true
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我宁愿使用 mongodb createIndex方法,因为它确保已创建索引,即使您在应用程序模型中创建了它们(在本例中为 Spring boot),最好进行双重检查并手动创建它们https:// /docs.mongodb.com/v3.2/reference/method/db.collection.createIndex/
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |