我在 MongoDB 中有集合,我正在尝试使用 Spring 注释 (@TextIndexed) 生成文本索引。我不会在应用程序启动时创建数据库,它已经创建了。
问题是 - 索引没有添加到我的数据库中。
注释是否仅在启动应用程序后创建数据库时才起作用?
谢谢。
Spring v.4.3.2 MongoDB v.4.0.1
最佳答案
“注释是否仅在启动应用程序后创建数据库时才起作用”?
答案是肯定的。
如果集合已经创建,Spring data 不会初始化索引。 我必须做一些像你想做的事情,我发现的唯一解决方案是使用 MongoOperations 实例来完成它。
@Autowired
private MongoOperations mongoOps;
@PostConstruct
public void initializeIndexesInDb(){
mongoOps.indexOps(YourDocumentClass.class).ensureIndex(new Index().on("fieldName", Direction.ASC));
}
关于Java Spring MongoDB @TextIndexed 注释未在现有数据库中创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52146327/