Spring Data MongoDB 动态创建索引

本文将介绍怎样利用 Spring Data MongoDB 模块的 MongoTemplate 动态为集合创建索引。

注意:该文章是基于 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);
        }
    }

}

运行示例程序,效果如下图:

Spring Data MongoDB 动态创建索引

少壮不努力,老大徒悲伤。——汉乐府古辞《长歌行》
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号