【发布时间】:2018-04-13 19:44:57
【问题描述】:
要为集合创建索引(如本文所述 https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/),可以使用以下内容:
mongoTemplate.indexOps(Person.class).ensureIndex(new Index().on("name",Order.ASCENDING));
但是我应该把这段代码 sn-p 放在程序的什么地方呢?
在相关存储库的构造函数中?我现在已经这样做了,而且效果很好,但我觉得这是一个糟糕的设计。
Mongo 配置中的某个位置?我还没有找到合适的方法来覆盖这里https://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/config/AbstractMongoConfiguration.html
【问题讨论】:
-
您是否尝试过在人员 pojo 中注释(@Indexed)索引字段(名称)?这对您不起作用,或者可能不是您想要的?
-
@Veeram 这不是我想要的。我有两个类似的 DB 模型类,其中一个扩展了另一个,其中一个应该有一个超过 2 个字段的复合唯一索引,而另一个应该只有一个超过 1 个字段的简单唯一索引。因此,我为扩展类添加了
@CompoundIndex注释,并且必须以编程方式为扩展类添加索引。 -
@Maxim 你找到答案了吗?我也有同样的疑问。
-
@NishantBhardwaz 我刚刚将它放在存储库的构造函数中,没有更好的选择。
标签: java spring mongodb spring-data-mongodb