【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.1
      port: 27017
      database: 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 {


    @Autowired
    private MongoTemplate mongoTemplate;

    //保存
    @Test
    public 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);

    }

    //查询一个
    @Test
    public 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)
    }

    //条件查询
    @Test
    public void testQuery(){
        //查询字段name为张三的数据(多条件查询)
        Query query = Query.query(Criteria.where("name").is("张三"))
                .with(Sort.by(Sort.Direction.DESC,"birthDay"));
        List<TestDemo> list = mongoTemplate.find(query, TestDemo.class);
        System.out.println(list);
    }

    //测试删除
    @Test
    public void testDel(){
        mongoTemplate.remove(Query.query(Criteria.where("name").is("张三")),TestDemo.class);
    }
}

4.验证

4.1连接mongoDB

 

4.2查看数据

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/533977.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web自动化测试系列-selenium常用方法定位(五)

目录 1.selenium的定位方法 2.操作案例 3.实现代码 前面我们介绍了html页面元素主要是通过标签和属性来进行定位 &#xff0c;只要满足唯一&#xff0c;无论是标签还是属性 &#xff0c;都能进行定位 。当然 &#xff0c;我们要通过selenium来进行定位 &#xff0c;同样还是…

wpf下如何实现超低延迟的RTMP或RTSP播放

技术背景 我们在做Windows平台RTMP和RTSP播放模块对接的时候&#xff0c;有开发者需要在wpf下调用&#xff0c;如果要在wpf下使用&#xff0c;只需要参考C#的对接demo即可&#xff0c;唯一不同的是&#xff0c;视频流数据显示的话&#xff0c;要么通过控件模式&#xff0c;要么…

使用脚本部署openstack平台

两台虚拟机&#xff0c;compute和controller computer的节点&#xff0c;内存4G&#xff0c;硬盘50G&#xff0c;网络要在虚拟机设置这里添加一个网络适配器&#xff0c;第一个是主机模式192.168.10.0&#xff0c;第二个是NAT模式192.168.20.0&#xff0c;再进入网络编辑器里编…

多输入多输出 | Matlab实现XGboost多输入多输出预测

多输入多输出 | Matlab实现XGboost多输入多输出预测 目录 多输入多输出 | Matlab实现XGboost多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现XGboost多输入多输出预测 1.data为数据集&#xff0c;10个输入特征&#xff0c;3个输出变量…

【绘图案例-获取裁剪过后的图片 Objective-C语言】

一、获取裁剪过后的图片 1.就是,把一张方形的图片,变成一张圆形的图片,然后,把它保存在相册里边儿, 我们刚刚学了保存到沙盒,是吧,现在来学保存到相册, 我们新建一个项目, Name:11-获取裁剪过后的图片, 我们还是在ViewController里面, 把下面这个方法删掉, 在下…

算法刷题应用知识补充---数论

这里写目录标题 快速幂求a^k%p题结 快速幂求逆元题结 扩展欧几里得求逆元题结 排列组合题结二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 快速幂求a^k%p 题 结 主要用到a的k次方&#xff0c;可以用多个a的…

RX4901CE自带SPI接口,适合用在需高精度和快速响应的设备

传统的模拟温度补偿晶振采用热敏电阻等元器件来检测环境温度&#xff0c;将温度信息做相应变换后控制晶振的输出频率用来实现稳定输出&#xff0c;但是这种做法频率补偿精度有限。伴随目前电路计算频率越来越高&#xff0c;更多工业级的高时间精度和快速时间响应的应用出现&…

实验5 流程图和盒图ns图

一、实验目的 通过绘制流程图和盒图&#xff0c;熟练掌握流程图和盒图的基本原理。 能对简单问题进行流程图和盒图的分析&#xff0c;独立地完成流程图和盒图设计。 二、实验项目内容&#xff08;实验题目&#xff09; 1、用Microsoft Visio绘制下列程序的程序流程图。 若…

代码整洁之道【3】--注释

传统的印象里&#xff0c;良好的代码都是需要丰富的注释的。看完《代码整洁之道》注释这章之后&#xff0c;发现根本不是这个样子&#xff1a; 什么也比不上放置良好的注释有用。什么也不会比乱七八糟的注释更有本事搞乱一个模块。 什么也不会比陈旧的、提供错误信息的注释更有…

Unity DOTS 入门(2) SubScene和Bake

SubScene 由于Unity原本的Scene无法使用ECS&#xff0c;所以需要SubScene来存放ECS模式下的内容可以正常的像普通的开发模式一样&#xff0c;在SubScene里面来添加GameObject, MonoBehaviour然后Unity将这个SubScene里面的物体&#xff0c;全部baking(烘培)出来&#xff0c;转…

Windows服务器任务计划启动 Java 应用遇到的error:解决错误ERROR0x2331

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

vs2022启动cmake项目(qt+c++)

1.本工程&#xff0c;如图&#xff0c;1个cmakelist.txt3个文件 2.启动vs 3.选择文件夹 4.进入这个页面&#xff0c;就说明配置没问题 5.启动 6.最后会自己生成其他文件

crc编码流水传输

目标 首先我们要确定目标就是输入两位错的时候我们需要重新传输 这其中还分了地址回位&#xff0c;不显示输出&#xff0c;各位清零操作 我们再去看一下这个的详细封转 这么做是有问题的&#xff0c;没有将之前的数据清零 我们做完清零操作以后我们提交一下 发现只需要一…

从零开始学Spring Boot系列-SpringApplication

SpringApplication类提供了一种从main()方法启动Spring应用的便捷方式。在很多情况下&#xff0c; 你只需委托给 SpringApplication.run这个静态方法 &#xff1a; SpringBootApplicationpublic class SpringbootLearningApplication {public static void main(String[] args) …

透视 Insilico 英矽智能:AI 制药明星企业的飞跃、困境与破局

衰老&#xff0c;从古至今困扰了无数仁人志士。无论是千古一帝秦始皇&#xff0c;还是雄才大略汉武帝&#xff0c;亦或者挥斥方遒唐太宗&#xff0c;这些伟大的帝王无一例外的都留下了许多追求长生的故事。当时光的指针落在了 21 世纪的第二个十年&#xff0c;随着全球老龄化问…

中老年人高血糖预防需知:少碰两黄一白,四指标严格控制!

对于血糖不好的人来说&#xff0c;尤其是中老年人&#xff0c;饮食上的调整非常重要。 “少碰两黄一白”是一个很好的饮食原则&#xff0c;可以帮助稳定血糖&#xff0c;预防糖尿病及其并发症的发生。 “两黄”指的是油炸食物和含糖量高的食物&#xff0c;长期摄入会导致身体肥…

css实现扫码循环扫描特效

摘要&#xff1a; 需求中需要模拟扫描的效果来实现户型的生成&#xff01;由于接口ai生成的图片户型时间比较长&#xff0c;所以需要模拟特效&#xff01; <!DOCTYPE html> <html><head><mate charset"UTF-8" /><title>扫描</title…

第二证券|这些翻倍牛股,他们赚到了!

龙年开市以来&#xff0c;有色、化工等周期板块以及AI、轿车等板块表现亮眼&#xff0c;成为商场主线&#xff0c;也涌现出多只大牛股。 数据显现&#xff0c;2月19日以来&#xff0c;到4月10日收盘&#xff0c;A股商场共涌现出33只翻倍股&#xff0c;234只个股涨幅超50%。易方…

美国G口服务器租用的应用领域

在当今数字化快速发展的时代&#xff0c;服务器成为了各行各业不可或缺的重要工具。其中&#xff0c;美国G口服务器以其高带宽、高性能的特点&#xff0c;在众多领域得到了广泛的应用。那么&#xff0c;美国G口服务器租用的应用领域究竟有哪些呢?接下来&#xff0c;本文将为您…

Python快速获取编程问题答案的方法库之howdoi使用详解

概要 howdoi是一个命令行工具,它提供了一种快速获取编程问题答案的方法,通过搜索和抓取Stack Overflow等网站的内容,直接在终端中显示编程问题的解决方案。 安装 通过pip可以轻松安装howdoi: pip install howdoi特性 快速访问编程解决方案:无需手动浏览Stack Overflow。…