我正在从Spring层面上处理MongoDB中的索引。我想使用不区分大小写的索引。
从上面的MongoDB文档中,我可以看到从数据库级别可以使用强度排序(collation)来实现,并应该在createIndex函数中使用。但是,我无法找到有关如何在CompoundIndex注释中使用选项的任何信息。
在Spring文档中没有提到有关选项的内容。是否有人知道如何操作?
我正在从Spring层面上处理MongoDB中的索引。我想使用不区分大小写的索引。
从上面的MongoDB文档中,我可以看到从数据库级别可以使用强度排序(collation)来实现,并应该在createIndex函数中使用。但是,我无法找到有关如何在CompoundIndex注释中使用选项的任何信息。
在Spring文档中没有提到有关选项的内容。是否有人知道如何操作?
在类似于@Indexed的注释中,我没有找到这样的选项,但您可以使用类似于以下内容来确保索引与排序规则一起存在:
@Configuration
@DependsOn("mongoTemplate")
class CollectionConfig(@Autowired private val mongoTemplate: MongoTemplate) {
@PostConstruct
fun ensureIndexes() {
mongoTemplate.indexOps(DbObject::class.java).ensureIndex(
Index("fieldName", Sort.Direction.ASC)
.unique()
.background()
.collation(of(Locale.ENGLISH).strength(ComparisonLevel.secondary()))
)
}
@CompoundIndex(name = "name_field", def = "{field1: 1,field2:1}{collation:'en', strength:2}")
虽然文档中没有提到,但我发现有一个关于此问题的未解决问题(https://jira.spring.io/browse/DATAMONGO-2133)。