news 2026/6/10 17:59:29

openEuler安装MongoDB 8.2.9

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
openEuler安装MongoDB 8.2.9

0 软件版本
> Linux版本:OpenEuler 24.03 SP3 LTS

> Hadoop版本:hadoop3.5.0

> HBase版本:hbase2.5.14

> MongoDB版本:8.2.9

> MongoDB Compass版本:1.49.7

> 参考链接:

安装MongoDB Community Edition - 数据库手册 - MongoDB Docs

https://www.mongodb.com/try/download/compass

MongoDB 8.0.3 手动安装指导 - Installation 安装部署 - openEuler 论坛
————————————————
版权声明:本文为CSDN博主「orion0410」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2401_89005476/article/details/161834441

# MongoDB 简介 ## 1. 基本概念 MongoDB 是一款使用 C++ 开发、基于分布式文件存储的开源 NoSQL 数据库。它介于传统关系型数据库与纯非关系型数据库之间,也是功能最完善、使用体验最接近关系型数据库的 NoSQL 产品。 该数据库采用**文档型**数据存储方式,底层以 BSON(二进制 JSON)格式完成数据存储与检索,部署简单、上手门槛低,同时兼容 Python、Java、C++、PHP 等主流编程语言,被广泛应用于大数据处理、内容管理、移动应用、社交平台、用户信息管理等各类业务场景。 MongoDB 具备三大核心特性: 1. **动态数据模型**:无需提前定义固定的数据表结构,可灵活存储结构多变的数据,适配业务频繁迭代、数据模型持续调整的场景。 2. **水平扩展能力**:支持分片技术,能够将海量数据拆分并分布式存储在多台服务器中,有效提升数据库整体性能与服务可用性。 3. **读写性能优异**:内置索引机制,支持复杂条件查询,可高效处理高并发、大数据量的读写请求。 ## 2. MongoDB 相较于传统关系型数据库的优势 1. **无固定表结构**:数据以键值对形式组织,文档结构类似 JSON 对象,单个文档内还可嵌套其他文档、数组,数据组织形式灵活自由。 2. **摒弃复杂关联关系**:不需要维护多表之间的关联约束,省去复杂的表连接操作,简化数据设计与查询逻辑。 3. **查询能力强大**:配套查询语法功能完备,能力接近于 SQL,可实现多样化的动态条件查询。 4. **运维与扩展简单**:部署、调优难度低,天然支持高可用与弹性扩容,能够轻松应对业务规模增长。 5. **业务对象高度匹配**:程序中的业务对象可以直接映射为数据库文档,降低代码开发成本。 6. **存储模式灵活**:支持内存、磁盘两种存储方式,同时自 4.0 版本起正式支持多文档事务,兼顾数据访问效率与数据一致性,运行稳定可靠。

x.2 MongoDB优势

MongoDb相对于RDBMS的优势:

1.无固定结构 。
2.数据结构由键值(key=>value)对组成。MongoDB 的文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,单个对象的结构是清晰的。
3.没有复杂的表连接。不需要维护表与表之间的内在关联关系。
4.查询功能强大。MongoDB的查询功能几乎与SQL一样强大,使用基于文档的查询语言,可以对文档进行动态查询。
5.易于调优和扩展。具备高性能、高可用性及可伸缩性等特性
6.应用程序对象与数据库对象天然对应。
7.可以基于内存存储或者硬盘文件存储,提供丰富的查询操作和索引支持,也有事务操作,可以更快地更稳定的访问数据。(mongoDB4.0以后才真正支持所谓的多文档事务操作)。
————————————————
版权声明:本文为CSDN博主「orion0410」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2401_89005476/article/details/161834441

x.3MongoDB 的核心概念与传统 SQL 关系型数据库存在对应关系,下表为两者常用术语对照:

SQL 数据库MongoDB 数据库
数据库(Database)数据库(Database)
数据表(Table)集合(Collection)
数据行 / 记录(Row)文档(Document)
列 / 字段(Column)字段 / 键(Field)
主键(Primary Key)对象 ID(ObjectId)
索引(Index)索引(Index)

简要说明

  1. 数据库:二者概念完全一致,用于独立隔离不同业务的数据。
  2. 集合:相当于 SQL 中的数据表,集合内可存放多条文档,无需统一结构
  3. 文档:是 MongoDB 的最小数据单元,对应 SQL 里的单条数据记录,以 BSON 格式存储。
  4. 字段:文档中的单个键值对,等同于数据表的列。
  5. 对象 ID:MongoDB 自动为每条文档生成的唯一标识,作用等价于关系型数据库的主键。
  6. 索引:功能用法基本相同,均用于优化查询速度。

x.4基本操作

命令功能说明
db.help()查看数据库对象(db)支持的所有操作方法帮助
db.mycoll.help()查看指定集合(如mycoll)支持的所有操作方法帮助
sh.help()查看分片(Sharding)相关辅助方法的帮助信息
rs.help()查看副本集(Replica Set)相关辅助方法的帮助信息
help admin查看数据库管理相关的操作帮助
help connect查看数据库连接相关的帮助信息
help keys查看 Shell 中的快捷键说明
help misc查看其他杂项相关的提示信息
help mr查看 MapReduce 相关的帮助说明
show dbs列出当前系统中所有数据库名称
show collections列出当前数据库中的所有集合
show users查看当前数据库中定义的所有用户
show profile查看最近执行时间 ≥ 1ms 的慢查询记录
show logs列出所有可用的日志名称
show log [name]查看指定日志的最后一段内容(默认global
use <db_name>切换当前操作的数据库(若不存在则隐式创建)
db.mycoll.find()查询mycoll集合中的所有文档
db.mycoll.find({ a : 1 })查询mycoll集合中字段a等于1的所有文档
it迭代查看上一条查询的后续结果(相当于翻页)
DBQuery.shellBatchSize = x设置 Shell 中单次查询结果的默认显示条数(默认 20)

MongoDB 安装与使用(Linux + Windows + Python 完整版)

1 Linux 环境安装 MongoDB 社区版

本节介绍在 openEuler 等 Linux 系统中手动安装 MongoDB Community Edition 的完整流程。

1.1 下载安装包

前往 MongoDB 官网下载对应系统版本的 MongoDB 安装包: https://www.mongodb.com/try/download/community

首先查看系统架构,确认版本匹配:

bash

运行

uname -m

根据系统版本选择tgz 格式压缩包,例如 CentOS 9 /openEuler x86_64。

1.2 解压与重命名

进入安装包所在目录(如 “下载” 文件夹),执行解压命令:

bash

运行

sudo tar -zxvf mongodb-linux-x86_64-rhel93-8.2.9.tgz -C /usr/local

进入/usr/local目录,将解压后的文件夹重命名为mongodb

bash

运行

cd /usr/local sudo mv mongodb-linux-x86_64-rhel93-8.2.9 mongodb

修改目录权限,保证普通用户可正常使用:

bash

运行

sudo chown -R hadoop ./mongodb

安装完成后,MongoDB 根目录为:

plaintext

/usr/local/mongodb

1.3 创建数据与日志目录

进入 MongoDB 目录,创建数据存储路径和日志路径:

bash

运行

cd /usr/local/mongodb mkdir -p data/db mkdir -p data/log

1.4 创建配置文件 mongodb.conf

在 MongoDB 根目录下创建配置文件:

bash

运行

vim /usr/local/mongodb/mongodb.conf

写入以下配置内容:

yaml

storage: dbPath: /usr/local/mongodb/data/db systemLog: destination: file logAppend: true path: /usr/local/mongodb/data/log/mongod.log net: port: 27017 bindIp: 0.0.0.0 processManagement: fork: true

1.5 配置环境变量

编辑用户环境变量文件:

bash

运行

vim ~/.bashrc

在文件末尾添加:

bash

运行

export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin

使环境变量立即生效:

bash

运行

source ~/.bashrc

1.6 启动 MongoDB

使用配置文件启动 MongoDB 服务:

bash

运行

mongod --config /usr/local/mongodb/mongodb.conf

查看端口是否正常监听:

bash

运行

netstat -lntup | grep 27017

开放防火墙端口:

bash

运行

sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent sudo firewall-cmd --reload

2 使用 Navicat 连接 MongoDB

2.1 建立连接

打开 Navicat,新建 MongoDB 连接:

  • 主机:Linux 虚拟机 IP
  • 端口:27017 点击测试连接,显示连接成功即可。

可在图形界面中直接创建数据库、集合,并进行数据管理。


3 Windows 安装 MongoDB Shell

3.1 下载安装包

从官网下载 Windows 版本的 MongoDB Shell(zip 压缩包): https://www.mongodb.com/try/download/shell

3.2 解压与配置

解压后放置到简单目录,例如:

plaintext

D:\mongosh

bin目录添加到 Windows 系统环境变量。

打开 CMD,使用以下命令连接 Linux 上的 MongoDB:

bash

运行

mongosh 192.168.80.128:27017

3.3 常用数据库操作命令

bash

运行

db # 查看当前数据库 show dbs # 显示所有数据库 use 数据库名 # 切换/创建数据库 db.集合.find() # 查询文档 db.集合.insertOne({}) # 插入一条文档 db.集合.updateOne() # 更新一条文档 db.集合.deleteOne() # 删除一条文档 exit / quit() # 退出 shell

4 Windows 安装 MongoDB Compass

4.1 下载安装

从官网下载 MongoDB Compass 安装包并安装: https://www.mongodb.com/try/download/compass

4.2 连接数据库

输入 Linux 虚拟机的 IP 与端口 27017,建立连接。

4.3 创建数据库与集合

示例:

  • 数据库名:mongodb
  • 集合名:Student

插入示例数据:

json

{ "name": "ZhangSan", "score": { "English": 65, "Math": 86, "Computer": 77 } }

json

{ "name": "LiSi", "score": { "English": 55, "Math": 100, "Computer": 88 } }

4.4 在 Compass 中使用 Shell

点击右上角Open MongoDB Shell,可执行命令:

bash

运行

db.Student.find({}) # 查询所有学生 db.Student.find({"name":"LiSi"}) # 查询指定学生 db.Student.find({"name":"LiSi"},{"score":1}) # 只查看成绩 db.Student.updateOne({"name":"LiSi"}, {$set:{"score.Math":95}})

5 Python 操作 MongoDB

5.1 安装依赖库

bash

运行

pip install pymongo

5.2 连接数据库

python

运行

import pymongo client = pymongo.MongoClient("mongodb://192.168.80.128:27017/") db = client["mydb"]

5.3 插入数据

python

运行

collection = db["customers"] data = {"name": "John", "address": "Highway 37"} result = collection.insert_one(data) print(result.inserted_id)

5.4 查询数据

python

运行

for item in collection.find(): print(item)

5.5 更新数据

python

运行

query = {"name": "John"} new_values = {"$set": {"address": "Canyon 123"}} collection.update_one(query, new_values)

5.6 删除数据

python

运行

query = {"name": "John"} collection.delete_one(query)

5.7 完整示例代码

python

运行

import pymongo # 连接 client = pymongo.MongoClient("mongodb://192.168.80.128:27017/") db = client["mydb"] collection = db["customers"] # 插入 data = {"name": "John", "address": "Highway 37"} res = collection.insert_one(data) print("插入ID:", res.inserted_id) # 查询 for item in collection.find(): print(item) # 更新 query = {"name": "John"} new_val = {"$set": {"address": "Canyon 123"}} collection.update_one(query, new_val) # 删除 collection.delete_one(query)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 17:58:34

肖有米开发团队-三三循环模型助力模式开发

“三三循环”社交裂变模型的数学结构与合规边界分析——三三循环的社交裂变模型&#xff1a;数学与合规的未来趋势标签&#xff1a;#商业模式分析#社交裂变#合规经营#网络经济#数学模型找演示&#xff1a;看专刊⬆️一、为什么“三三循环”值得单独拆解“三三循环”是一种经典的…

作者头像 李华
网站建设 2026/6/10 17:54:33

IF_REST_APPLICATION原理

IF_REST_APPLICATION原理 IF_REST_APPLICATION 实现路径匹配的核心原理是&#xff1a;你预先定义一套“路由规则”&#xff08;即 URI 模板与后端 ABAP 处理类的绑定关系&#xff09;&#xff0c;当客户端请求到来时&#xff0c;SAP REST 框架中的“路由器”CL_REST_ROUTER 会找…

作者头像 李华
网站建设 2026/6/10 17:47:13

什么是 AI 算能基础设施?企业如何选型

AI 算能基础设施&#xff08;AI Compute Infrastructure&#xff09;是企业开展大模型训练、推理服务与智能化应用落地的底座&#xff0c;涵盖算力、网络、存储与平台软件四层能力。与通用云计算不同&#xff0c;算能基础设施更强调高吞吐、低时延与可扩展的 GPU 资源调度。 核…

作者头像 李华
网站建设 2026/6/10 17:46:06

高阻抗风道散热突围:3步解决通信设备热失效与成本失控问题

一、 边缘困境&#xff1a;当“散热”成为吞金兽在通信基建领域&#xff0c;设备稳定性是生命线。然而&#xff0c;许多设备制造商正面临一个隐蔽的系统性风险&#xff1a;高密度部署带来的热管理失控。本文分析的案例来自某通信设备制造商&#xff0c;其生产线上大量基站设备因…

作者头像 李华
网站建设 2026/6/10 17:43:30

【STM32入门】一文搞懂串口通信:波特率、数据位与停止位详解

【STM32入门】一文搞懂串口通信&#xff1a;波特率、数据位与停止位详解前言 在嵌入式开发中&#xff0c;串口&#xff08;UART&#xff09;是最常用、最基础的调试和通信接口。很多新手在使用 STM32 进行串口通信时&#xff0c;经常会遇到乱码、丢包或者无法接收数据的问题。这…

作者头像 李华