盐城网站建设价格,西安网站建设问问q778925409耍強,租电信网站服务器,php进销存管理系统#x1f469;#x1f3fd;#x1f4bb;个人主页#xff1a;阿木木AEcru #x1f525; 系列专栏#xff1a;《Docker容器化部署系列》 《Java每日面筋》 #x1f4b9;每一次技术突破#xff0c;都是对自我能力的挑战和超越。 目录 一、 MongoDB简介1.1 适用场景1.2 应… 个人主页阿木木AEcru 系列专栏《Docker容器化部署系列》 《Java每日面筋》 每一次技术突破都是对自我能力的挑战和超越。 目录 一、 MongoDB简介1.1 适用场景1.2 应用案例 二、 Docker部署MongoDB2.1 拉取MongoDB镜像2.2 创建持久化文件夹2.3 启动MongoDB容器2.4 配置账号密码2.5 开放防火墙端口2.6 工具连接测试 三、SpringBoot整合MongoPlus3.1 MongoPlus是什么3.2 引入maven依赖3.3 yml配置文件3.4 Controller代码3.5 service代码3.6 测试结果 四、结尾 一、 MongoDB简介
MongoDB是一个开源的NoSQL文档型数据库它使用灵活的文档模型来存储数据这些文档可以是嵌套的类似于JSON对象。MongoDB以其高性能、高可用性和易扩展性而闻名适用于各种规模的应用从小型项目到大型企业级应用。
1.1 适用场景 网站数据:MongoDB 非常适合处理网站的实时数据包括用户会话、页面点击流、用户活动日志等。它支持高并发的读写操作适合处理大量用户请求和实时数据更新。 缓存:由于其高性能的特性MongoDB 可以作为应用程序的缓存层减轻后端数据库的压力。它可以存储大量的缓存数据提高数据访问速度优化系统性能。 大数据和分析:MongoDB 可以存储和处理大规模的数据集适合进行复杂的数据分析和处理。它的聚合框架提供了强大的数据处理能力可以执行复杂的数据聚合操作。 内容管理系统CMS:MongoDB 的文档型结构非常适合存储和查询内容相关的数据如文章、图片、视频等。它的灵活的数据模型和强大的查询语言使得内容管理变得更加高效。 物联网IoT:MongoDB 可以处理来自传感器和设备的大量时序数据。它支持地理空间索引适合处理地理位置相关的数据。 移动应用:MongoDB 可以作为移动应用的后端数据库存储用户数据、应用配置和实时数据。它的可扩展性和高可用性确保了移动应用的稳定运行。 1.2 应用案例 京东:中国著名的电商平台使用 MongoDB 存储商品信息支持比价和关注功能。 赶集网:中国著名的分类信息网站使用 MongoDB 记录页面浏览量PV计数。 奇虎360: 著名的病毒软件防护和移动应用平台使用 MongoDB 支撑的 HULK 平台每天接受 200 亿次的查询。 百度云:使用 MongoDB 管理百度云盘中 500 亿条关于文件源信息的记录。 CERN:著名的粒子物理研究所欧洲核子研究中心大型强子对撞机的数据使用 MongoDB 存储。 纽约时报:领先的在线新闻门户网站之一使用 MongoDB 存储和处理新闻内容和用户数据。 二、 Docker部署MongoDB
2.1 拉取MongoDB镜像 docker pull mongo2.2 创建持久化文件夹
mkdir -p /usr/local/mongodb/data2.3 启动MongoDB容器
docker run --restartalways -itd --name mongo -v /usr/local/mongodb/data:/data/db -p 27017:27017 mongo:latest --auth2.4 配置账号密码
进入容器
docker exec -it mongo bash进入MongoDB控制台
mongo admin创建用户
db.createUser({user:root,pwd:root,roles:[{role:root, db:admin},readWrite]});连接MongoDB
db.auth(root, root)2.5 开放防火墙端口
sudo firewall-cmd --zonepublic --add-port27017/tcp --permanent
sudo firewall-cmd --reload
注如果是使用的云服务器安全组也需要开放此端口。2.6 工具连接测试 三、SpringBoot整合MongoPlus
3.1 MongoPlus是什么
Mongo-Plus是一个 MongoDB 的操作工具可和现有mongoDB框架结合使用为简化开发、提高效率而生。可以理解成Mongo版的MybatisPlus用法是差不多的。
特性如下
无侵入只做增强不做改变引入它不会对现有工程产生影响如丝般顺滑损耗小启动即会自动注入基本 CURD性能基本无损耗直接面向对象操作强大的 CRUD 操作通用 Service仅仅通过少量配置即可实现单表大部分 CRUD 操作更有强大的条件构造器满足各类使用需求支持 Lambda 形式调用通过 Lambda 表达式方便的编写各类查询条件无需再担心字段写错支持主键自动生成支持多达 5 种主键策略内含分布式唯一 ID 生成器 - Sequence可自由配置完美解决主键问题支持自定义全局通用操作支持全局通用方法注入
3.2 引入maven依赖
dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId
!-- scopetest/scope--/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--mongoPlus--dependencygroupIdcom.gitee.anwena/groupIdartifactIdmongo-plus-boot-starter/artifactIdversion2.0.8.3/version/dependency
/dependencies3.3 yml配置文件
# mongo配置
mongo-plus:data:mongodb:host: 127.0.0.1 #部署mongodb机器的ipport: 27017 #端口database: test #数据库名username: root #用户名没有可不填若账号中出现,!等等符号不需要再进行转码password: root #密码同上若密码中出现,!等等符号不需要再进行转码authenticationDatabase: admin #验证数据库connectTimeoutMS: 50000 #在超时之前等待连接打开的最长时间以毫秒为单位3.4 Controller代码 RestController
RequestMapping(/mini/user)
RequiredArgsConstructor
public class MiniUserController {private final MiniUserService miniUserService;//获取用户列表GetMapping(/list)public R getUserList(){ListMiniUser list miniUserService.list();return R.ok(list);}//新增用户PostMapping(/add)public R addUser() {//由于是测试我就随机生成用户信息了MiniUser user new MiniUser();user.setName(RandomUtil.randomString(16));user.setAge(RandomUtil.randomLong(18,100));user.setEmail(RandomUtil.randomNumbers(10)qq.com);boolean save miniUserService.save(user);return R.ok(save);}//新增用户DeleteMapping(/{id})public R deleteUser(PathVariable(id) String id) {boolean delete miniUserService.removeById(id);return R.ok(delete);}}3.5 service代码
public interface MiniUserService extends IServiceMiniUser {}Service
public class MongoServiceImpl extends ServiceImplMiniUser implements MiniUserService {}3.6 测试结果 这样一个简单的案例也就完成啦
四、结尾
感谢您的观看! 如果本文对您有帮助麻烦用您发财的小手点个三连吧您的支持就是作者前进的最大动力再次感谢