当前位置: 首页 > news >正文

【Java】SpringBoot快速整合mongoDB

目录

1.什么是mongoDB?

2.Docker安装mongoDB

3.SpringBoot整合mongoDB步骤

4.验证


1.什么是mongoDB?

        MongoDB是一种非关系型数据库,被广泛用于大型数据存储和分布式系统的构建。MongoDB支持的数据模型比传统的关系型数据库更加灵活,支持动态查询和索引,也支持json格式和bson格式的数据存储,这种格式可以支持读取和写入大量的数据。

基础知识和面试可以参考以下文章进行学习:

MongoDB详解,用心看这篇就够了【重点】-CSDN博客

程序员的50大MongoDB面试问题及答案_mongodb 面试-CSDN博客

2.Docker安装mongoDB

2.1拉取镜像

docker pull mongo

2.2创建容器

docker run -di --name mongo-service --restart=always -p 27017:27017 -v ~/data/mongodata:/data mongo

命令解释:

  • -d:表示在后台运行容器,并返回容器 ID。
  • -i:表示交互式运行容器,保留 STDIN 打开。
  • --name mongo-service:为容器指定一个名称,这里为 mongo-service。
  • --restart=always:表示在容器退出后自动重启容器。
  • -p 27017:27017:将容器的 27017 端口映射到宿主机的 27017 端口。
  • -v ~/data/mongodata:/data:将宿主机的 ~/data/mongodata 目录挂载到容器的 /data 目录下,用于持久化存储数据。
  • mongo:指定要运行的镜像名称,这里为官方的 MongoDB 镜像。

3.SpringBoot整合mongoDB步骤

3.1导入依赖

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

3.2添加mongo配置

server:port: 9998
spring:data:mongodb:host: 127.0.0.1port: 27017database: mongodb-demo

3.3添加映射

import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;import java.io.Serializable;
import java.util.Date;/*** 映射表 test_demo*/
@Data
@Document("test_demo")
public class TestDemo implements Serializable {private static final long serialVersionUID = 1L;private String id;private String name;private Date birthDay;}

 3.4测试:

/*** MongoDB测试类* */
@SpringBootTest(classes = MongoApplication.class)
@RunWith(SpringRunner.class)
public class MongoTest1 {@Autowiredprivate MongoTemplate mongoTemplate;//保存@Testpublic void saveTest(){for (int i = 0; i < 10; i++) {TestDemo testDemo = new TestDemo();testDemo.setName("张三");testDemo.setBirthDay(new Date());mongoTemplate.save(testDemo);}TestDemo testDemo = new TestDemo();testDemo.setName("张三你吃饭了吗");testDemo.setBirthDay(new Date());mongoTemplate.save(testDemo);}//查询一个@Testpublic void saveFindOne(){TestDemo testDemo = mongoTemplate.findById("661743b77bee2f0a5739819d", TestDemo.class);System.out.println(testDemo);//TestDemo(id=661743b77bee2f0a5739819d, name=张三, birthDay=Thu Apr 11 09:58:15 CST 2024)}//条件查询@Testpublic void testQuery(){//查询字段name为张三的数据(多条件查询)Query query = Query.query(Criteria.where("name").is("张三")).with(Sort.by(Sort.Direction.DESC,"birthDay"));// 执行查询 模糊查询 只查询5条数据Query query1 = Query.query(Criteria.where("name").regex(".*?\\" + "张三" + ".*"));query.limit(5);List<TestDemo> list = mongoTemplate.find(query, TestDemo.class);List<TestDemo> list1 = mongoTemplate.find(query1, TestDemo.class);System.out.println("list:"+list);System.out.println("list1:"+list1);}//测试删除@Testpublic void testDel(){mongoTemplate.remove(Query.query(Criteria.where("name").is("张三")),TestDemo.class);}
}

4.验证

4.1连接mongoDB

4.2查看数据

这样就使用SpringBoot整合了mongoDB并写了一个简单的案例。 

http://www.lryc.cn/news/339314.html

相关文章:

  • UI设计的未来发展
  • 推荐系统学习记录——连续的嵌入空间
  • 【Entity Framework】你要知道EF中功能序列与值转换
  • 顶顶通呼叫中心中间件-SIP分机安全(mod_cti基于FreeSWITCH)
  • CountDownLatch
  • Vue3中的组合式API与选项式API:深入理解与比较
  • 接口自动化测试实战之接口概念、项目简介及测试流程问答!
  • 浏览器工作原理与实践--跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性
  • Ubuntu配置VScode的C++环境
  • 使用Code开发Django_模版和CSS
  • Llama 3下月正式发布,继续开源!
  • 有图片转成PDF文件格式的方法吗?分享图片转成PDF文件的方法
  • 数据结构---绪论
  • matlab 安装 mingw64(6.3.0),OPENEXR
  • 最新彩虹知识付费商城源码 V3.4
  • Redis实现延迟任务的几种方案
  • 一种springboot请求参数校验的实现方案
  • 盒子模型+响应式布局 + 原型链与继承
  • 面试准备 集合 List
  • Java快速入门系列-7(测试与调试)
  • 算法:双指针
  • MySQL一些特殊功能的索引(6/16)
  • ES11-12
  • 【学习笔记】Vue3源码解析:第三部分-获取computed的值;实现computed
  • 顺序表(C语言版)
  • Python高质量函数编写指南
  • 探索Spring、Spring Boot和Spring Cloud的奇妙关系(二)
  • Mysql的事务隔离级别以及事务的四大特性。
  • 人工智能_大模型023_AssistantsAPI_01_OpenAI助手的创建_API的调用_生命周期管理_对话服务创建---人工智能工作笔记0159
  • 锁策略总结