所以,我正在从Spring级别开始研究MongoDB中的索引。我想使用不区分大小写的索引。
https://docs.mongodb.com/v3.4/core/index-case-insensitive/
从上面的mongo文档中我可以看到,从DB级别可以使用强度校对来完成,并且应该在createIndex函数中使用。但我无法找到有关如何使用CompoundIndex注释中的选项的任何信息。
在Spring dosc上,没有关于选项的消息。任何人都知道如何做到这一点?
答案 0 :(得分:2)
我在@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()))
)
}
答案 1 :(得分:0)
我正在寻找相同的信息并发现您可以使用它:
enum State { CREATED, VALID, TERMINATED }
State state;
modifier requireState(State _state) {
require(state == _state);
_;
}
文档中没有提到它,但我发现了一个悬而未决的问题 (https://jira.spring.io/browse/DATAMONGO-2133)