注意:该文章是基于 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);
}
}
}运行示例程序,效果如下图:
