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

Java研学-MongoDB(一)

一 MongoDB 简介

  MongoDB是一种高性能、开源的NoSQL数据库,采用面向文档的存储模型,以BSON(Binary JSON)格式存储数据,具有灵活的数据模型、强大的扩展性和丰富的功能特性,广泛应用于各类现代应用程序的数据存储和处理场景。

MongoDBSQL解释/说明
DatabaseDatabase数据库,用于存储和组织数据的基本容器,两者在概念上完全对应。
CollectionTable集合,MongoDB 中用于存储文档的容器,类似于 SQL 中的表,但结构更加灵活。
DocumentRow文档,MongoDB 中的数据记录单位,以 BSON 格式存储,类似于 SQL 中的行,但支持嵌套和数组等复杂结构。
FieldColumn字段,MongoDB 文档中的键值对,表示数据的具体属性,类似于 SQL 中的列。
IndexIndex索引,用于加速查询操作,MongoDB 和 SQL 都支持索引,但实现方式和类型可能有所不同。
不直接支持表连接(Table Joins)MongoDB 不支持 SQL 中的表连接操作,但可以通过嵌入文档或引用字段来实现类似的功能。
嵌入文档(Embedded Documents)无直接对应MongoDB 允许在文档中嵌入其他文档,这种设计可以替代 SQL 中的多表连接,提高查询效率。
主键(Primary Key)主键(Primary Key)MongoDB 自动为每个文档生成 _id 字段作为主键,确保文档的唯一性,类似于 SQL 中需要手动定义的主键。

二 业务应用场景

  在数字化浪潮下,传统关系型数据库(如 MySQL)面对数据操作的“三高”需求及 Web2.0 网站特性,逐渐力不从心。

High Performance(高性能):需具备应对高并发读写的能力,保障系统响应速度与用户体验。Huge Storage(海量存储):要实现海量数据的高效存储与访问,确保数据规模增长时性能不降。High Scalability && High Availability(高可扩展性与高可用性):能灵活扩展以适应业务发展,且具备高容错能力,保障服务连续稳定。

  面对数据量大,读写操作频繁,对事务性要求不高的数据,我们更适合使用MongoDB来实现数据的存储。MongoDB 凭借优势可应对“三高”需求,在多场景中发挥重要作用:

社交场景:适配用户信息与动态的多样结构,借灵活文档模型存储资料、标签及动态,凭地理位置索引精准定位附近用户,如 Soul 借此增强用户粘性。电商场景:文档模型适配商品信息多样性,借强大查询功能处理业务逻辑,如京东用于商品推荐以提升转化率。物流场景:利用内嵌数组存储订单全生命周期状态变更记录,支持一次查询获取完整状态,如中通快递用于客户查询与流程优化。物联网场景:以分布式架构应对设备海量数据,通过灵活查询满足多维度分析需求,如智能水务系统存储用水数据辅助管理。

三 Windows 部署

  ① 官网选择所需版本下载,此处选择zip格式。
在这里插入图片描述
  ② 解压后bin目录同级,创建数据存放目录\data\db,创建日志存放目录\logs并创建mongo.log文件,创建一个配置文件mongo.conf


  ③ 于bin目录中打开cmd,启动mongodb,根据自身存放路径进行修改

# 启动 MongoDB 数据库服务器,并指定使用一个特定的配置文件来配置 MongoDB 的运行参数。
mongod --config "E:\Kingsoft\mongodb-win32-x86_64-windows-8.0.9\mongo.conf"
# 启动 MongoDB 数据库服务器,并明确指定数据库文件的存储路径。
mongod --dbpath E:\Kingsoft\mongodb-win32-x86_64-windows-8.0.9\data\db

  ④ MongoDB 6.0 后做出了重大改变,MongoDB 不再默认安装shell 工具,因此需要到官网安装一个额外的shell,也就是mongosh
在这里插入图片描述
  ⑤ 解压 mongosh,于该解压目录下的bin目录启动cmd进行链接,老版本不需下载使用mongo命令即可(非mongosh的bin目录)

# 新版本
mongosh# 老版本
mongo

四 Linux 部署

1 安装

  ① 官网下载压缩包(tgz格式)
在这里插入图片描述
  ② 上传至Linux服务器解压,可通过Xshell中的Xftp功能,并移动到指定文件夹中
在这里插入图片描述

# 解压
tar -xvf mongodb-linux-x86_64-rhel70-7.0.20.tgz
# 移动 此时文件夹名称重命名为mongodb
mv mongodb-linux-x86_64-rhel70-7.0.20 /usr/local/mongodb

  ③ 新建数据存放目录与日志存放目录

# 数据存储目录
mkdir -p /mongodb/single/data/db# 日志存储目录
mkdir -p /mongodb/single/log

  ④ 新建配置文件

vi /mongodb/single/mongod.conf
# 系统日志设置
systemLog:# MongoDB 发送所有日志输出的目标指定为文件-持久化destination: file# mongod 或 mongos 应向其发送所有诊断日志记录信息的日志文件的路径path: "/mongodb/single/log/mongod.log"# 当 mongos 或 mongod 实例重新启动时,mongos 或 mongod 会将新条目附加到现有日志文件的末尾logAppend: true# 存储设置
storage:# mongod 实例存储其数据的目录。storage.dbPath 设置仅适用于 mongoddbPath: "/mongodb/single/data/db"  # 修正了路径格式# journal: # 默认启用# 启用或禁用持久性日志以确保数据文件保持有效和可恢复,默认启用# enabled: true# 进程管理设置
processManagement:# 启用在后台运行 mongos 或 mongod 进程的守护进程模式fork: true# 网络设置
net:# 服务实例绑定的 IP,默认是 localhost,配置局域网IP后可远程访问,通过ifconfig查询bindIp: localhost,192.168.44.128# 指定的端口,默认是 27017port: 27017

  ⑤ 启动 MongoDB 服务,successfully表示启动成功

# -f 参数指定了配置文件的位置
/usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf

  ⑥ 测试远程连接
在这里插入图片描述
  ⑦ 若远程连接不上,需要配置防火墙放行

# 查看防火墙状态
sudo systemctl status firewalld
# 临时关闭防火墙
sudo systemctl stop firewalld
# 开机禁止启动防火墙
sudo systemctl disable firewalld

  ⑧ 关闭进程

# 查看端口号
ps -ef | grep mongod# 结束进程 -2 优雅终止 -9 强制终止
kill -2 进程号
http://www.xdnf.cn/news/740701.html

相关文章:

  • 用JS实现植物大战僵尸(前端作业)
  • 【Oracle】TCL语言
  • Flutter - 原生交互 - 相机Camera - 01
  • 在Windows本地部署Dify详细操作
  • 线程(上)【Linux操作系统】
  • 【Kotlin】简介变量类接口
  • Express中使用MySQL数据库的完整示例
  • python批量解析提取word内容到excel
  • Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等)
  • Microsoft Word使用技巧分享(本科毕业论文版)
  • #AI短视频制作完整教程
  • Acrobat DC v25.001 最新专业版已破,像word一样编辑PDF!
  • VR/AR 视网膜级显示破局:10000PPI 如何终结颗粒感时代?
  • Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)
  • Linux防止误关机
  • Linux 下如何查看进程的资源限制信息?
  • Linux设置静态IP
  • Linux:动静态库
  • 【KWDB 创作者计划】_再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践
  • Python----目标检测(《基于区域提议网络的实时目标检测方法》和Faster R-CNN)
  • 调用蓝耘Maas平台大模型API打造个人AI助理实战
  • HiveSQL语法全解析与实战指南
  • 累加法求数列通项公式
  • 点云识别模型汇总整理
  • 【C++】入门基础知识(1.5w字详解)
  • 解决Acrobat印前检查功能提示无法为用户配置文件问题
  • 【Day40】
  • 从equals思考对“正念”的认知
  • 超级对话:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之一
  • 位置规划模式和周期同步位置模式区别