J.F*_*.F. 5 java mongodb spring-boot mongo-index
我知道有类似的问题,例如:Spring boot / mongo wont create index with the index comment
\nGithub 中的问题还包括“spring.data.mongodb.auto-index-creation=true”无法正常工作
\n我还尝试过这个 Baeldung 指南:Spring Data MongoDB \xe2\x80\x93 Indexes, Annotations and Converters
\n所以问题是我正在尝试使用 @Indexed 注释向现有集合添加索引,如下所示:
\n@CreatedDate\n@Indexed(name="timestamp_index", expireAfterSeconds=100))\nprivate Date timestamp;\nRun Code Online (Sandbox Code Playgroud)\n该字段是在将元素插入数据库时自动创建的时间戳。
\n该类也有@Document标签。
那么,我尝试了什么?
\nspring.data.mongodb.auto-index-creation: true根据其他答案,我做的第一件事就是以这种方式添加:
@CreatedDate\n@Indexed(name="timestamp_index", expireAfterSeconds=100))\nprivate Date timestamp;\nRun Code Online (Sandbox Code Playgroud)\n这不起作用......但我也读到问题可能出在我上课时AbstractMongoClientConfiguration。
目前该项目没有该类,但存在MongoConfiguration带有该@Configuration标签的类。我不知道这是否会干扰或其他什么。
类是这样的:
\nspring:\n data:\n mongodb:\n uri: ${env.mongo-database.url}\n auto-index-creation: true\nRun Code Online (Sandbox Code Playgroud)\n这个类创建一个@Bean命名的mongodb所以我尝试在这里手动添加自动索引为 true :
@Configuration\npublic class MongoConfiguration { /*creates some beans*/ }\nRun Code Online (Sandbox Code Playgroud)\n但这也行不通。未创建索引。
\n而且这个类不扩展,AbstractMongoClientConfiguration所以我无法重写该方法autoIndexCreation
我还可以使用以下代码以编程方式创建索引:
\n@Primary\n@Bean(name = "mongodb")\n@ConfigurationProperties(prefix = "spring.data.mongodb")\npublic MongoProperties getMongodbProperties() {\n MongoProperties mongoProperties = new MongoProperties();\n mongoProperties.setAutoIndexCreation(true);\n return mongoProperties;\n}\nRun Code Online (Sandbox Code Playgroud)\n但为了更清晰的实现,我想仅在模型中使用注释。
\n所以要点是:auto-index-creation在应用程序属性中使用或尝试将值添加到属性中都不起作用。
也许配置类不允许自动创建?它以任何方式干扰吗?
\n我不应该被授权修改配置类,如果是像调用setAutoIndexCreation方法这样的小改变没有问题,但我不能改变逻辑并从AbstractMongoClientConfiguration. 所以理想的情况是让它与注释一起工作@Indexed。
提前致谢
\n| 归档时间: |
|
| 查看次数: |
2715 次 |
| 最近记录: |