当前位置: 首页 > 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.lryc.cn/news/586881.html

相关文章:

  • ref 和 reactive
  • https交互原理
  • [Subtitle Edit] 字幕格式处理 | .Net依赖管理(NuGet)
  • Python----OpenCV(图像分割——彩色图像分割,GrabCut算法分割图像)
  • LeetCode--44.通配符匹配
  • Mybatis 两级缓存可能导致的问题
  • Java4种设计模式详解(单例模式、工厂模式、适配器模式、代理模式)
  • 笔记/sklearn中的数据划分方法
  • 赛力斯6月新能源汽车销量46086辆,同比增长4.44%
  • JavaScript加强篇——第九章 正则表达式高级应用(终)
  • Linux编程:6、进程通信-信号量与共享内存
  • OpenLayers 入门指南【二】:坐标系与投影转换
  • linux进程信号II
  • Node.js特训专栏-实战进阶:16. RBAC权限模型设计
  • 基于YOLOv7的改进模型:集成Swin Transformer和ASFF模块
  • 26-计组-数据通路
  • 【软件开发】使用 Spring WebFlux 进行请求校验
  • iOS ish app 打印时间
  • HJ8 合并表记录 10:35
  • Vue中的render()函数
  • 【LeetCode数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
  • 为什么要有延时回调?
  • 【实证分析】上市公司绿色战略数据集(2000-2023年)
  • 如何设计一个合理的 Java Spring Boot 项目结构
  • C++ 强制类型转换
  • 【读书笔记】《C++ Software Design》第六章深入剖析 Adapter、Observer 和 CRTP 模式
  • 开机自动启动同花顺,并设置进程优先级为高
  • Linux驱动开发1:设备驱动模块加载与卸载
  • 【Linux学习笔记】认识信号和信号的产生
  • JAVA JVM虚拟线程