Java研学-MongoDB(一)

news2025/7/22 7:10:32

一 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 设置仅适用于 mongod
  dbPath: "/mongodb/single/data/db"  # 修正了路径格式
  # journal: # 默认启用
    # 启用或禁用持久性日志以确保数据文件保持有效和可恢复,默认启用
    # enabled: true

# 进程管理设置
processManagement:
  # 启用在后台运行 mongos 或 mongod 进程的守护进程模式
  fork: true

# 网络设置
net:
  # 服务实例绑定的 IP,默认是 localhost,配置局域网IP后可远程访问,通过ifconfig查询
  bindIp: localhost,192.168.44.128
  # 指定的端口,默认是 27017
  port: 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.coloradmin.cn/o/2395917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI面试秘籍】| 第25期:RAG的关键痛点及解决方案深度解析

今天我们来聊聊大模型领域一个非常火热的技术——RAG(Retrieval Augmented Generation)。RAG通过引入外部知识库,有效地缓解了大型语言模型(LLM)在处理知识密集型任务时可能出现的幻觉、知识过时等问题。然而&#xff…

服务器带宽线路的区别(GIA、CN2、BGP、CMI等)

服务器带宽线路的区别(GIA、CN2、BGP、CMI等) 一、BGP线路 1. 定义与技术特点 BGP(Border Gateway Protocol,边界网关协议)是一种用于不同自治系统(AS)之间交换路由信息的协议,属…

ppt一键制作:ai自动生成PPT,便捷高效超级精美!

深夜的台灯下,你对着杂乱的 PPT 内容反复刷新灵感,鼠标在字体、配色选项间来回穿梭,好不容易拼凑出的页面,却总透着浓浓的 “廉价感”;汇报在即,逻辑混乱的大纲改了又改,每一页感觉合适又不搭&a…

Maven(黑马)

Maven 是一个强大的项目管理和构建自动化工具,主要用于 Java 项目的构建、依赖管理和文档生成。它通过使用 POM(Project Object Model)文件来管理项目的配置和依赖关系,从而实现项目的自动化构建和管理。以下是 Maven 的一些核心概…

将手机网络经USB数据线和本地局域网共享给华为AP6050DN无线接入点

引言 由于最近装毕的新家所在的小区未能及时通宽带,于是家中各类无线设备如何上网就成了首要要解决的问题。 鉴于家中要联网的设备多、类型杂、支持频段也不一,总是开手机热点不是回事儿,于是就想着把手机网络引至华为AP6050DN无线接入点中,让家中所有的无线设备都能快速高…

【论文解读】Deformable DETR | Deformable Transformers for End-to-End Object Detection

论文地址:https://arxiv.org/pdf/2010.04159 代码地址:https://github.com/fundamentalvision/Deformable-DETR 摘要 DETR最近被提出,旨在消除物体检测中许多手工设计的组件的需求,同时展示出良好的性能。然而,由于T…

机器学习----决策树

一、决策树简介 from sklearn.tree import DecisionTreeClassifier from sklearn.tree import plot_tree 决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果。 决…

LabVIEW输血袋字符智能检测系统

针对医疗行业输血袋字符检测需求,基于 LabVIEW 图形化开发平台与基恩士(KEYENCE)机器视觉硬件,构建高精度、高可靠性的字符在线识别系统。通过选用基恩士工业相机、光源及 NI 数据采集设备等硬件,结合 LabVIEW 强大的图…

理解频域滤波

1 频域滤波基础 对一幅数字图像,基本的频率滤波操作包括: 1)将图像变换到频率域; 2)根据需要修改频率域数值; 3)反变换到图像域。 使用公式表达为 , H(u,v) 为滤波器(滤…

Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET MVC、Kendo…

古老的传说(Player、Stage)是否还能在蓝桥云课ROS中重现-250601(失败)

古老的传说是否还能在蓝桥云课ROS中重现-250601 经典复现何其难,百分之二就凉凉! 古老的传说 那是很久很久以前的故事……上个世纪的一个机器人项目 Player、Stage这个项目最早起源于1999年,由美国南加州大学机器人研究实验室开发&#xff0…

InfluxQL 数据分析实战:聚合、过滤与关联查询全解析

InfluxQL 作为时序数据库的专用查询语言,在处理时间序列数据时展现出独特优势。本文深入探讨 聚合计算、数据过滤和跨测量关联 三大核心操作,通过真实代码示例展示如何从海量时序数据中提取关键洞察。文中涵盖从基础平均值计算到复杂多维度分析的完整流程…

Qt font + ToolTip + focusPolicy + styleSheet属性(5)

文章目录 font属性API接口直接在Qt Designer编辑图形化界面通过纯代码的方式修改文字属性 ToolTip属性API接口代码演示 focusPolicy属性概念理解API接口通过编辑图形化界面演示 styleSheet属性概念理解通过编辑图形化界面展示代码 图形化界面的方式展示(夜间/日间模…

十三: 神经网络的学习

这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。为了使神经网络能进行学习,将导入损失函数这一指标。而学习的目的就是以该损失函数为基准,找出能使它的值达到最小的权重参数。为了找出尽可能小的损失函数的值,我们将介绍利…

LeetCode 高频 SQL 50 题(基础版)之 【聚合函数】部分

题目:620. 有趣的电影 题解: select * from cinema where description !boring and id%21 order by rating desc题目:1251. 平均售价 题解: select p.product_id product_id,round(ifnull(sum(p.price*u.units)/sum(u.units),0)…

【AI学习】检索增强生成(Retrieval Augmented Generation,RAG)

1,介绍 出自论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》,RAG是权宜之计,通过RAG将问题简单化、精简化、剔除噪声,让LLM更容易理解、生成内容。RAG:检索增强技术检索生成(重…

低成本高效图像生成:GPUGeek和ComfyUI的强强联合

一、时代背景 在如今的数字化时代,图像生成技术正不断发展和演变,尤其是在人工智能领域。无论是游戏开发、虚拟现实,还是设计创意,图像生成已成为许多应用的核心技术之一。然而,随着图像质量需求的提升,生成…

《操作系统真相还原》——进入内核

ELF 按书上的操作来,在现代操作平台编译链接默认生成elf64 格式的文件, 很显然程序头位置发生变化,因为定义elf 结构的类型中有64位,所以我们需要将编译链接出32位格式的 gcc -m32 -c -o main.o main.c ld -m elf_i386 main.o …

【QQ音乐】sign签名| data参数 | AES-GCM加密 | webpack(上)

1.目标 网址:https://y.qq.com/n/ryqq/toplist/26 切换榜单出现请求,可以看到sign和data是加密的 2.逆向分析 搜索sign: 可以看到sign P(n.data),而n.data就是请求的加密data参数 data {"comm":{"cv":4747474,&qu…

【STM32】按键控制LED 光敏传感器控制蜂鸣器

🔎【博主简介】🔎 🏅CSDN博客专家 🏅2021年博客之星物联网与嵌入式开发TOP5 🏅2022年博客之星物联网与嵌入式开发TOP4 🏅2021年2022年C站百大博主 🏅华为云开发…