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

MongoDB对接SpringBoot【大数据存储】

文章目录

一、什么是MongoDB?

二、下载MongoDB数据库

1、点击链接进入mongodb官网

​编辑2、下载压缩包并解压

3、数据、日志文件夹管理

4、配置环境变量

5、--dbpath命令初始化

6、封装启停文件

三、Boot项目对接MongoDB

1、引入maven依赖

2、配yml文件

3、创建MogodbPojo实体类

4、注入MongoDB模版

 5、创建controller

6、Navicat连接MongoDB

 2、查看接口测试数据

四、注意事项


一、什么是MongoDB?

定义:MongoDB是一种NoSQL数据库,属于文档型数据库,使用BSON(二进制JSON)格式存储数据。

特点:

灵活的模式:文档结构可以动态变化,不需要预先定义固定的表结构。
高性能:支持高效的查询和索引,适合处理大量数据。
可扩展性:支持水平扩展,通过分片(Sharding)处理海量数据。
丰富的功能:支持复制、事务、聚合管道等高级功能。
用途:

Web应用:适合存储用户数据、日志、配置信息等。
大数据处理:支持海量数据的存储和分析。
内容管理:适合存储和管理文档、图片、视频等非结构化数据。
与其他数据库的区别:

与关系型数据库(如MySQL):MongoDB使用文档模型,而关系型数据库使用表结构。MongoDB更加灵活,适合处理非结构化数据。
与其他NoSQL数据库(如Redis):Redis主要作为内存数据库,适合缓存和会话存储,而MongoDB更适合持久化存储和复杂查询。

二、下载MongoDB数据库

Download MongoDB Community Server | MongoDBhttps://www.mongodb.com/try/download/community

1、点击链接进入mongodb官网
2、下载压缩包并解压

下载压缩包解压到文件夹,我放在了D盘,我选择的是6版本

切记路径不要有中文,避免潜在问题

3、数据、日志文件夹管理

我们进入此文件夹下新建data、logs两个文件夹:

4、配置环境变量

需要配置一下环境变量,注意替换为您的文件路径:

5、--dbpath命令初始化

初始化mongodb储存路径,进入bin目录下,使用--dbpath data路径  --dbpath log路径来初始化

d:\MongoDB\Server\3.4\bin --dbpath “d:\MongoDB\Server\3.4\data” --logpath “d:\MongoDB\Server\3.4\logs\mongo.log” 
6、封装启停文件

然后封装我们的启动命令,便于以后使用;进入到mongodb文件夹下,创建两个文件

start_mongodb.bat启动文件内容如下:

@echo off
cd /d D:\App\mongoDB\mongodb-win32-x86_64-windows-6.0.21\bin
net start mongodb
echo MongoDB服务已启动
pause

stop_mongodb.bat停止文件内容如下:

@echo off
net stop mongodb
echo MongoDB服务已停止
pause

双击start_mongodb.bat文件启动,在浏览器输入localhost:27017输出以下内容代表服务启动成功

三、Boot项目对接MongoDB

1、引入maven依赖
    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.1.RELEASE</version></parent><!--mongodb配置,跟随boot版本--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>
2、配yml文件
# mongodb配置
springdata:mongodb:uri: mongodb://localhost:27017/mydatabaseconnection-pool:max-size: 100min-size: 10
3、创建MogodbPojo实体类

创建MogodbPojo实体类,mongodb自动生成id我们在实体类中不写也没关系的。

package com.my.entity;
import lombok.Data;
import java.time.LocalDate;@Data
public class MogodbPojo {private String name;private Integer age;
}
4、注入MongoDB模版

使用模版注入的方式引入MongoDB。

    @Autowiredprivate MongoTemplate mongoTemplate;
 5、创建controller

新建MongoDBController编写CRUD代码中有注释说明。

package com.my.controller;import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import com.my.Rcode.Results;
import com.my.entity.MogodbPojo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.web.bind.annotation.*;import java.util.List;/**** NAME:Ran* TIME:2025/4/1*/
@RestController
public class MongoDBController {//    第一步注入controller@Autowiredprivate MongoTemplate mongoTemplate;//    新增@PostMapping("/insert")public MogodbPojo insert(@RequestBody MogodbPojo mogodbPojo) {return mongoTemplate.insert(mogodbPojo, "users");//存储数据 集合名称}//    删除@DeleteMapping("remove")public DeleteResult remove(String id) {
//      构建删除条件 匹配id字段Query queryMongodb = new Query(Criteria.where("_id").is(id));
//调用删除方法,指定class类,集合名称用于定位return mongoTemplate.remove(queryMongodb, MogodbPojo.class, "users");}//    修改@PostMapping("/update")public UpdateResult update(@RequestParam String id, @RequestParam String name) {
//       创建条件Query query = new Query(Criteria.where("_id").is(id));
//        被修改字段Update updateName = new Update().set("name", name);
//调用更新方法return  mongoTemplate.updateFirst(query, updateName, MogodbPojo.class, "users");}//    根据id做单个查询@GetMapping("/selectById")public MogodbPojo selectById(@RequestParam String id) {return  mongoTemplate.findById(id, MogodbPojo.class, "users");}//    根据条件做多个查询@GetMapping("/selectList")public List<MogodbPojo> selectList(@RequestParam String name) {Query query = new Query(Criteria.where("name").is(name));return mongoTemplate.find(query, MogodbPojo.class, "users");}
}
6、Navicat连接MongoDB

我们使用navicat工具来连接mongodb服务,点击连接选择mongoDB,连接名称任意,其它项默认即可,点击测试连接并确定。

 2、查看接口测试数据

执行接口进行测试数据库结果如下:

因为mongodb是json格式,我们换一下视图:

四、注意事项

1、中文路径问题不要有。

2、navicat版本不要太旧,否则没有mongodb连接项。

3、虽然mongodb对于复合查询效率但是我们创建mongodb的实体类可以任意组合参数。

http://www.dtcms.com/a/277644.html

相关文章:

  • Hashtable 与 HashMap 的区别笔记
  • 利用DeepSeek证明立体几何题目
  • Flink学习笔记:整体架构
  • Vue 3 动态ref问题
  • 第十五篇:Python操作Excel速成:读写单元格、样式与公式,你的第一个数据自动化脚本!告别手动录入!
  • 002大模型基础知识
  • 多项式运算→复数域FFT→有限域NTT
  • 在上海开发小程序,怎么做出“高级感”?
  • RTDETR融合[CVPR2024]SHViT中的SHSA模块
  • 业务访问控制-ACL与包过滤
  • openeuler使用桥接模式(包括新建虚拟机和已有虚拟机)
  • C语言集成ip2region快速指南
  • java: DDD using oracle 21c
  • 【实证分析】上市公司绿色战略数据集(2000-2023年)
  • 【PTA数据结构 | C语言版】字符串删除操作
  • Mybatis自动创建数据库表,并根据创建的表自动生成Mvc框架基础代码
  • WPS新版Latex公式改为显示样式,防止内嵌缩小
  • 清华北大西工大!具身导航最新综述
  • Git的常用操作
  • MYSQL笔记2
  • NW756NW815美光固态闪存NW821NW828
  • Switch表达式
  • 算法第三十二天--动态规划part01(第九章)
  • 苍穹外卖@RequestBody导错包导致接收不到传入参数
  • Linux锁的概念及线程同步
  • 互斥锁详解(操作系统os)
  • VUE3(二)、路由
  • 时序预测 | Pytorch实现CNN-KAN电力负荷时间序列预测模型
  • day16~17-系统负载高故障与磁盘管理
  • 【开源项目】拆解机器学习全流程:一份GitHub手册的工程实践指南