SpringBoot整合MongoDB的简单使用

前言:

MongoDB是专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。 MongoDB的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。

具体介绍请访问MongoDB中文手册|官方文档中文版 - MongoDB-CN-Manual (mongoing.com)

前提准备:

1.安装MongoDB

(19条消息) MongoDB的安装配置教程(很详细,你想要的都在这里)_mongodb下载安装配置教程_狮子座的男孩的博客-CSDN博客https://blog.csdn.net/weixin_43405300/article/details/120017878?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168005384216800213033508%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168005384216800213033508&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-120017878-null-null.142%5Ev76%5Econtrol,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&utm_term=mongoDB%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187

安装完mongoDB之后,进入到对应的bin目录下,在bin目录中启动cmd

输入mongo.exe即可启动命名行

2.创建权限用户

#查看数据库

show database;

#选择数据库

use admin;

#在admin数据库中创建权限用户

db.createUser({user:"root",pwd:"123456",roles:[{role:"readWriteAnyDatabase",db:"admin"}]})

命令操作:(建议提前熟悉再进行SpringBoot整合MongoDB)

MongoDB 教程 | 菜鸟教程 (runoob.com)

具体操作:

1.导入依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-mongodb</artifactId>
   <version>2.3.12.RELEASE</version>
</dependency>

 2.编写实体类

// @Data需要导入lombok依赖包
@Data
public class Student {
    private String id;
    private String name;
    private Integer age;
}

3.编写接口

/**
 * 通过继承MongoRepository实现MongoDB的CURD操作
 * 指定两个泛型:操作的实体类类型 和 主键的类型
 */
public interface StudentDao extends MongoRepository<Student, String> {


}

4.进行MongoDB配置(基于.yml文件)

spring:
  data:
    mongodb:
      # 如果在MongoDB中创建了用户,抛出认证失败错误
      # UncategorizedMongoDbException: Exception authenticating MongoCredential
      # 则将密码加上“”
      username: root
      password: "123456"
      # 认证的库
      authentication-database: admin
      # 默认端口号
      port: 27017
      # 本机地址
      host: 127.0.0.1
      # 所需测试的数据库
      database: test

5.进行测试

// classes 指定启动类
@SpringBootTest(classes = SpringBootApplcationMongoDB.class)
public class StudentDaoTest {

    @Resource
    StudentDao studentDao;

    @Resource
    MongoTemplate mongoTemplate;


    @Test
    public void test{

        for (int i = 0; i < 10; i++) {
            Student student = new Student();
            student.setName("张三" + i);
            student.setAge(18 + i);
            studentDao.save(student);
        }

        // 如果只是简单的增删改查 建议使用继承了MongoRepository的StudentDao
        studentDao.findAll(Sort.by(Sort.Direction.DESC , "age")).forEach(student -> {
            System.out.println("findAll ====》》》 " + student);
        });

        // 如果出现较为复杂的CURD操作,建议使用MongoTemplate 进行条件查询等复杂操作
        Query query = new Query();
        // 添加条件为 age is 22
        query.addCriteria(Criteria.where("age").is(22));
        System.out.println("findOne(query , Student.class) ====》》》 " +  mongoTemplate.findOne(query, Student.class));

        // 添加模糊查询 name regex "王"
        Query query1 = new Query();
        query1.addCriteria(Criteria.where("name").regex("王"));
        // 还可以排除不需要显示的列字段  fields().exclude()
        query1.fields().exclude("age");
        System.out.println("mongoTemplate.find(query, Student.class) = " + mongoTemplate.find(query , Student.class));
    }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱编程的艾编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值