news 2026/5/1 23:39:11

一文搞懂MongoDB概念理解与安装

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一文搞懂MongoDB概念理解与安装

目录

  • 引言
  • 一、MongoDB核心概念解析
    • 1.1 什么是MongoDB
    • 1.2 核心数据模型
    • 1.3 关键术语详解
      • 文档(Document) -> 行
      • 集合(Collection) -> 表
      • 数据库(Database)
    • 1.4 主要特性
      • 高性能
      • 高可用性
      • 水平扩展性
      • 灵活的数据模型
      • MongoDB 的六大核心特点
      • MongoDB 适合什么场景?
  • 二、MongoDB安装教程
    • 2.1 Windows系统安装
      • 2.1.1 下载安装包
      • 2.1.2 安装步骤
      • 2.1.3 配置环境
      • 2.1.4 启动服务
      • 2.1.5 安装可视化工具MongoDB Compass GUI
    • 2.2 Linux系统安装(以CentOS为例)
      • 2.2.1 配置YUM源
      • 2.2.2 安装MongoDB
      • 2.2.3 配置与启动
      • 2.2.4 安装前检查
    • 2.3 macOS系统安装(使用Homebrew)
      • 2.3.1 安装Homebrew
      • 2.3.2 安装MongoDB
      • 2.3.3 启动服务
    • 2.4 连接 MongoDB Shell
  • 三、基础安全配置
    • 3.1 创建管理员用户
    • 3.2 启用身份验证
    • 3.3 重启服务
    • 3.4 使用账号登录
  • 四、常见问题与解决方案
    • 4.1 启动失败
    • 4.2 远程连接失败
    • 4.3 性能优化建议
  • 五、总结

引言

前段时间小马也介绍了《一文搞懂Elasticsearch概念理解与安装》和《一文搞定Elasticsearch基本操作语法》,基本对Elasticsearch有了基本的入门掌握。接下来我们来对另一种NoSQL数据库MongoDB也进行了解,本文先来参考一些文章和资料整理对MongoDB 的入门简单理解和安装,后续进入案例实践,小马争取在几篇文章内把 MongoDB 从入门上手的精华分析透。

在大数据与云计算时代,传统关系型数据库在处理海量非结构化数据时逐渐力不从心,MongoDB作为文档型NoSQL数据库的代表,以其灵活的数据模型、高可扩展性和卓越性能,成为现代应用开发的热门选择。本文将深入解析MongoDB核心概念,并提供多操作系统的详细安装指南。

一、MongoDB核心概念解析

1.1 什么是MongoDB

MongoDB是一款基于分布式文件存储的开源数据库,由C++语言编写,专为Web应用设计,旨在提供可扩展的高性能数据存储解决方案。它介于关系型数据库和非关系型数据库之间,既保留了关系型数据库的查询灵活性,又具备非关系型数据库的扩展性优势。

MongoDB 是一个开源、跨平台、面向文档的 NoSQL 数据库,是目前全球最流行的 NoSQL 数据库。它不使用传统数据库的“表 + 行”结构,而是使用「集合(Collection)」+「文档(Document)」来存储数据。

和 MySQL 最大的区别在于:MongoDB 存储的是类似JSON的文档(准确说是 BSON),而不是二维表格。这意味着你写在代码里的 JSON 对象,几乎可以直接丢进数据库,它自己就知道怎么存。

1.2 核心数据模型

MongoDB采用文档型数据模型,与传统关系型数据库有显著区别:

关系型数据库MongoDB说明
数据库(Database)数据库(Database)数据存储的顶层容器
表(Table)集合(Collection)文档的分组,无需预定义结构
行(Row)文档(Document)数据的基本单位,类似JSON对象
列(Column)字段(Field)键值对中的键
主键(Primary Key)自动生成_idMongoDB自动生成的唯一标识符
外键关联内嵌文档 / 引用
索引 (InnoDB -> B+Tree)索引 (B-Tree)

# 对应关系数据库 ->集合 ->文档 ->字段 数据库 ->表 ->行 ->

变更需重建索引的场景:

1.3 关键术语详解

文档(Document) -> 行

  • MongoDB的基本数据单元,采用BSON格式(二进制JSON)

  • 由键值对组成,支持嵌套文档和数组

  • 模式自由,同一集合中的文档可以有不同结构

  • 示例:

    {
    "_id": ObjectId("507f1f77bcf86cd799439011"),
    "name": "张三",
    "age": 30,
    "address": {
    "city": "北京",
    "street": "中关村大街"
    },
    "hobbies": ["篮球", "游泳"]
    }

集合(Collection) -> 表

  • 一组文档的容器,类似于关系数据库中的
  • 无需预定义结构,可随时添加新字段
  • 命名规则:不能包含空字符,不能以system.开头

数据库(Database)

  • 多个集合的容器,每个数据库有独立的文件系统存储
  • 默认系统数据库:admin(权限管理)、local(本地副本集信息)、config(分片配置)

1.4 主要特性

高性能

  • 嵌入式数据模型减少I/O操作
  • 支持丰富的索引类型,包括单键索引、复合索引、地理空间索引等
  • 内存计算优化,提升数据读写速度

高可用性

  • 副本集(Replica Set)实现数据冗余和自动故障转移
  • 主节点负责写操作,从节点负责读操作,自动故障转移确保服务连续性

水平扩展性

  • 分片(Sharding)技术将数据分布到多台服务器
  • 支持基于分片键创建数据区域,优化读写性能

灵活的数据模型

  • 动态模式适应快速变化的数据需求
  • 支持嵌套文档和数组,减少表连接操作

MongoDB 的六大核心特点

📦 面向文档存储:数据以 JSON 风格的 BSON 文档存储一个文档可以包含字符串、数字、数组甚至嵌套的其他文档

🔓无 Schema 约束:同一个集合里的各个文档可以有不同的字段集,增减字段不需要执行 ALTER TABLE 操作,非常适合快速迭代。

🚀 高性能:支持嵌入式数据模型,减少数据库的 I/O 操作。丰富的索引支持(单字段、复合、多键、地理空间、文本索引等)可以显著提升查询速度。

📊 高可用性:内置副本集机制,支持自动故障转移,避免单点故障。

⚡ 水平扩展:原生支持分片(Sharding),可以轻松应对 TB 级乃至 PB 级的海量数据。

🛠️ 丰富的功能生态:支持多文档 ACID 事务(4.0+版本)、强大的聚合管道、全文搜索、地理空间查询等,满足复杂业务需求。

MongoDB 适合什么场景?

✅ 最适合:

大数据量、高并发场景(电商、社交、日志系统)

数据结构频繁变化的项目

物联网、设备数据(传感器、日志)

内容管理、博客、新闻、评论系统

实时分析、缓存层

移动端 / 后端快速开发项目

❌ 不太适合:

强事务、金融核心交易(虽然支持事务,但不如 MySQL 成熟

大量复杂的多表关联查询

传统 ERP、银行核心系统

二、MongoDB安装教程

官方入门教程:https://www.mongodb.com/zh-cn/docs/get-started/?language=nodejs

快速参考安装教程如下:

2.1 Windows系统安装

2.1.1 下载安装包

访问MongoDB官网下载中心(https://www.mongodb.com/download-center/community),选择Windows平台下载最新稳定版。

2.1.2 安装步骤

  1. 双击下载的.msi文件启动安装程序
  2. 选择"Custom"自定义安装,指定安装目录(如C:\mongodb
  3. 取消勾选"Install MongoDB Compass"选项(建议单独安装)
  4. 点击"Next"完成安装

2.1.3 配置环境

  1. 在安装目录下创建data\dblog文件夹

  2. 配置系统环境变量,将C:\mongodb\bin添加到PATH中

  3. 创建配置文件mongod.cfg

    systemLog:
    destination: file
    path: "C:\\mongodb\\log\\mongod.log"
    storage:
    dbPath: "C:\\mongodb\\data\\db"

2.1.4 启动服务

  1. 以管理员身份打开命令提示符
  2. 执行命令:mongod --config "C:\mongodb\mongod.cfg" --install --serviceName "MongoDB"
  3. 启动服务:net start MongoDB

2.1.5 安装可视化工具MongoDB Compass GUI

MongoDB Compass 是一款功能强大的 GUI,用于在可视环境中查询、聚合和分析 MongoDB 数据。

Compass 可免费使用并提供源代码,并且可以在 macOS、Windows 和 Linux 上运行。

  1. 访问官网下载Compass(https://www.mongodb.com/download-center/compass)
  2. 解压下载的压缩包,运行MongoDBCompass.exe
  3. 点击"Connect"连接本地MongoDB服务

Compass 使用教程:https://www.mongodb.com/zh-cn/docs/compass/

2.2 Linux系统安装(以CentOS为例)

2.2.1 配置YUM源

创建/etc/yum.repos.d/mongodb-org-7.0.repo文件:

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc

2.2.2 安装MongoDB

sudo yum install -y mongodb-org

2.2.3 配置与启动

  1. 修改配置文件/etc/mongod.conf,设置bindIp0.0.0.0允许远程连接
  2. 启动服务:sudo systemctl start mongod
  3. 设置开机自启:sudo systemctl enable mongod
  4. 查看状态:sudo systemctl status mongod

2.2.4 安装前检查

  1. 关闭SELinux:修改/etc/selinux/config,设置SELINUX=disabled
  2. 检查系统最大打开文件数:ulimit -n,建议设置为64000以上
  3. 安装依赖包:sudo yum install -y openssl

2.3 macOS系统安装(使用Homebrew)

2.3.1 安装Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2.3.2 安装MongoDB

brew tap mongodb/brew
brew install mongodb-community@7.0

2.3.3 启动服务

# 后台启动
brew services start mongodb-community@7.0

# 前台启动(测试用)
mongod --config /usr/local/etc/mongod.conf

2.4 连接 MongoDB Shell

MongoDB 安装好后,默认在27017端口运行。无论使用哪个平台,都可以用以下方式快速连接并基础操作:

  1. 连接 MongoDBShell
    打开终端 / 命令提示符,执行:
mongosh

或者,如果系统中只有旧版:

mongo

三、基础安全配置

3.1 创建管理员用户

// 进入MongoDB shell
mongosh

// 切换到admin数据库
use admin

// 创建根管理员用户
db.createUser({
user: "admin",
pwd: "yourStrongPassword",
roles: [{ role: "root", db: "admin" }]
})

3.2 启用身份验证

修改配置文件,添加或修改:

security:
authorization: enabled

3.3 重启服务

# Linux
sudo systemctl restart mongod

# Windows
net stop MongoDB
net start MongoDB

3.4 使用账号登录

mongosh -u "admin" -p "yourStrongPassword" --authenticationDatabase "admin"

四、常见问题与解决方案

4.1 启动失败

  • 检查数据目录权限:确保mongod用户对/var/lib/mongo有读写权限
  • 查看日志文件:/var/log/mongodb/mongod.log获取详细错误信息
  • 检查端口占用:使用netstat -tuln | grep 27017查看端口是否被占用

4.2 远程连接失败

  • 检查防火墙设置:确保27017端口对外开放
  • 修改配置文件:将bindIp设置为0.0.0.0允许所有IP访问
  • 检查安全组规则:云服务器需在安全组中开放27017端口

4.3 性能优化建议

  • 合理设计索引:根据查询需求创建适当的索引
  • 使用批量操作:减少网络往返次数
  • 配置合适的存储引擎:默认WiredTiger适合大多数场景
  • 定期清理数据:删除过期数据,释放存储空间

五、总结

MongoDB以其灵活的数据模型、高可扩展性和卓越性能,成为现代应用开发的理想选择。通过本文的介绍,您应该已经掌握了MongoDB的核心概念和在不同操作系统上的安装方法。在实际应用中,建议结合具体业务需求,合理设计数据模型和架构,充分发挥MongoDB的优势。

随着技术的不断发展,MongoDB也在持续更新迭代,提供更多强大功能。建议关注官方文档和社区动态,不断学习和探索MongoDB的新特性,为您的应用开发提供更好的支持。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 23:34:06

利用 Taotoken CLI 工具一键配置多开发环境与统一密钥

利用 Taotoken CLI 工具一键配置多开发环境与统一密钥 1. Taotoken CLI 工具概述 Taotoken CLI 是一个命令行工具,旨在简化开发者对接 Taotoken 平台的过程。通过该工具,您可以快速为不同开发环境和项目配置统一的 API 密钥与模型端点,避免…

作者头像 李华
网站建设 2026/5/1 23:32:00

工业软件自主化背后的测试攻坚战

在“中国制造2025”与“双循环”战略的双重驱动下,工业软件自主化已从行业共识升级为国家战略。从航天器热仿真到汽车模具数控加工,从智能电网控制到芯片制造工艺验证,国产工业软件正以每年18%的市场增速突破欧美巨头的技术封锁。然而&#x…

作者头像 李华
网站建设 2026/5/1 23:20:42

超越HX711:用STM32和CS1238构建低成本高精度电子秤/压力传感系统

超越HX711:用STM32和CS1238构建低成本高精度电子秤/压力传感系统 在创客和嵌入式开发领域,高精度模拟信号采集一直是个热门话题。无论是厨房电子秤、工业称重系统还是压力传感器,24位ADC芯片都是实现微伏级信号测量的核心。传统方案中&#x…

作者头像 李华