Java研学-MongoDB(一)

article/2025/6/21 17:43:54

一 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.hkcw.cn/article/ZJkcPAPtOY.shtml

相关文章

【LLM相关知识点】 LLM关键技术简单拆解,以及常用应用框架整理(二)

【LLM相关知识点】 LLM关键技术简单拆解,以及常用应用框架整理(二) 文章目录 【LLM相关知识点】 LLM关键技术简单拆解,以及常用应用框架整理(二)一、市场调研:业界智能问答助手的标杆案例1、技术…

自动化立体仓库WCS的设计与实现

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。欢迎大家使用我们的仓储物流技术AI智能体。 新书《智能物流系统构成与技术实践》 新书《智能仓储项目出海-英语手册,必备!》 完整版文件和更多学习资料&#xf…

2025年5月18日蓝桥stema省选拔赛编程题答案解析

题目:水龙头 时间限制:C/C 语言 1000MS;其他语言 3000MS 内存限制:C/C 语言 65536KB;其他语言 589824KB 题目描述: 小明在 0 时刻(初始时刻)将一个空桶放置在漏水的水龙头下。已知桶…

基于开源AI大模型AI智能名片S2B2C商城小程序源码的销售环节数字化实现路径研究

摘要:在数字化浪潮下,企业销售环节的转型升级已成为提升竞争力的核心命题。本文基于清华大学全球产业研究院《中国企业数字化转型研究报告(2020)》提出的“提升销售率与利润率、打通客户数据、强化营销协同、构建全景用户画像、助…

使用 HTML + jsmind 实现在线思维导图

在日常工作和学习中,思维导图是一种非常有效的可视化工具,可以帮助我们梳理思路、规划任务、整理知识结构。本文将带你一步步了解如何使用 HTML 和 jsmind 实现一个基础的在线思维导图应用。 效果演示 项目概述 本项目主要包含以下核心功能&#xff1a…

利用python工具you-get下载网页的视频文件

有时候我们可能在一个网站看到一个视频(比如B站),想下载,但是页面没有下载视频的按钮。这时候,我们可以借助python工具you-get来实现下载功能。下面简要说下步骤 (一)因为使用的是python工具&a…

threejs渲染器和前端UI界面

1. three.js Canvas画布布局 学习本节课之前,可以先回顾下第一章节入门部分的6和12两小节关于threejs Canvas画布布局的讲解。 网页上局部特定尺寸:1.6 第一个3D案例—渲染器(opens new window) 全屏,随窗口变化:1.12 Canvas画布布局和全屏…

嵌入式编译工具链熟悉与游戏移植

在自己的虚拟机Ubuntu系统下,逐步编译 mininim源码(波斯王子重制开源版) 指令流程 sudo apt-get remove liballegro5-dev liballegro-image5-dev \liballegro-audio5-dev liballegro-acodec5-dev liballegro-dialog5-dev sudo apt-get install automak…

IEEE P370:用于高达 50 GHz 互连的夹具设计和数据质量公制标准

大多数高频仪器,如矢量网络分析仪 (VNA) 和时域反射仪 (TDR),都可以在同轴接口的末端进行非常好的测量。然而,复杂系统中使用的互连很少具有同轴接口。用于表征这些设备的夹具的设计和实施会对测…

随机响应噪声-极大似然估计

一、核心原因:噪声机制的数学可逆性 在随机响应机制(Randomized Response)中使用极大似然估计(Maximum Likelihood Estimation, MLE)是为了从扰动后的噪声数据中无偏地还原原始数据的统计特性。随机响应通过已知概率的…

二叉搜索树——红黑树

红黑树 概念红黑树的原理红黑树的效率红黑树的插入规则变色旋转变色红黑树的验证 代码如下 概念 红黑树本质也是一颗二叉搜索树,他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约…

PCB设计教程【强化篇】——USB拓展坞元件选型

前言 本教程基于B站Expert电子实验室的PCB设计教学的整理,为个人学习记录,旨在帮助PCB设计新手入门。所有内容仅作学习交流使用,无任何商业目的。若涉及侵权,请随时联系,将会立即处理 目录 前言 USB 拓展坞项目概述…

C++11新特性lambda的使用详解

得益于C11的发布,提供了提高效率的语法,C11以后是现代C,C98是传统C,这里来介绍lambda的使用和原理。 目录 1.lambda 2.列表捕捉 3,lambda的应用 4,lambda原理 1.lambda lambda表达式本质是一个匿名函…

4000万日订单背后,饿了么再掀即时零售的“效率革命”

当即时零售转向价值深耕,赢面就是综合实力的强弱。 文|郭梦仪 编|王一粟 在硝烟弥漫的外卖行业“三国杀”中,饿了么与淘宝闪购的日订单量竟然突破了4000万单。 而距淘宝闪购正式上线,还不到一个月。 在大额福利优惠…

PostIn入门教程 - 使用IDEA插件快速生成API接口定义

PostIn是一款国产开源免费的接口管理工具,包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块,支持常见的HTTP协议、websocket协议等。IDEA插件支持扫描代码自动生成接口文档并上传到PostIn系统。本文将详细介绍怎么安装IDEA插件,使用…

在RTX5060Ti上进行Qwen3-4B的GRPO强化微调

导语 最近赶上618活动,将家里的RTX 4060显卡升级为了RTX 5060Ti 16GB版本,显存翻了一番,可以进行一些LLM微调实验了,本篇博客记录使用unsloth框架在RTX 5060Ti 16GB显卡上进行Qwen3-4B-Base模型的GRPO强化微调实验。 简介 GPU性…

用户认证的魔法配方:从模型设计到密码安全的奇幻之旅

title: 用户认证的魔法配方:从模型设计到密码安全的奇幻之旅 date: 2025/05/31 09:34:15 updated: 2025/05/31 09:34:15 author: cmdragon excerpt: 用户认证体系的核心在于用户模型设计和密码安全规范。用户模型需包含唯一用户名、邮箱、加密密码等基础字段,使用SQLAlche…

Kafka ACK机制详解:数据可靠性与性能的权衡之道

在分布式消息系统中,消息确认机制是保障数据可靠性的关键。Apache Kafka 通过 ACK(Acknowledgment)机制 实现了灵活的数据确认策略,允许用户在 数据可靠性 和 系统性能 之间进行权衡。本文将深入解析 Kafka ACK 机制的工作原理、配…

ARM改口了,小米XRING O1真的是自研芯片

上周小米发布XRING O1芯片的时候,业内议论纷纷。有人说这不过是换个马甲的ARM方案,有人质疑小米的技术实力。但是这两天,ARM官方主动出来澄清了——小米的XRING O1确实没有使用ARM的CSS客户端平台解决方案。 这个转折挺有意思的。ARM作为IP授…

android 媒体框架之MediaCodec

一、MediaCodec 整体架构与设计思想 MediaCodec 是 Android 底层多媒体框架的核心组件,负责高效处理音视频编解码任务。其架构采用 生产者-消费者模型,通过双缓冲区队列(输入/输出)实现异步数据处理: 输入缓冲区队列…