注意:该文章是基于 Spring Boot 2.7.2 版本进行测试
直接上代码:
(1)Spring Data MongoDB 的配置(application.yml)如下:
# MongoDB 配置 spring: data: mongodb: uri: mongodb://localhost:27017/test
(2)创建一个 Spring Boot 测试类,使用 @SpringBootTest 注解进行修饰。代码如下:
package com.hxstrive.mongodb.mongodb_spring_boot.demo; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.index.Index; import org.springframework.data.mongodb.core.query.Query; /** * 动态创建索引 * @author hxstrive.com */ @SpringBootTest class DynamicCreateIndex { @Autowired private MongoTemplate mongoTemplate; @Test void contextLoads() { String collectionName = "dynamic_create_index"; // 查看集合是否已存在 long count = mongoTemplate.count(new Query(), collectionName); if(count <= 0) { // 集合不存在,则创建所有 Index index = new Index(); // 升序 index.on("col1", Sort.Direction.ASC); // 降序 index.on("col2", Sort.Direction.DESC); mongoTemplate.indexOps(collectionName).ensureIndex(index); } } }
运行示例程序,效果如下图: