📚前言
MongoDB 是一款高性能、文档型 NoSQL 数据库,支持跨平台部署。以下是 Windows 10/11、macOS(Intel/Apple Silicon)、Linux(Ubuntu/CentOS) 三大平台的完整安装步骤,包含环境配置、服务启动、验证测试,适合新手快速上手。
一、前置准备
- 系统要求:
- Windows:64 位 Windows 10/11(32 位系统不支持 MongoDB 4.4+)
- macOS:10.15+(Intel 或 Apple Silicon 芯片)
- Linux:Ubuntu 18.04+/CentOS 7+(64 位)
- 权限:安装时需管理员权限(Windows 右键 “以管理员身份运行”,Linux/macOS 用
sudo) - 可选工具:MongoDB Compass(官方可视化工具,建议一起安装)
二、Windows 平台安装(推荐方式:.msi 安装包)
步骤 1:下载安装包
- 访问 MongoDB 官网下载页:https://www.mongodb.com/try/download/community

- 选择版本:推荐 Latest Stable Release(最新稳定版)
- 选择操作系统:
Windows,系统架构:x64(默认) - 下载安装包(.msi 文件,约 200MB)
步骤 2:运行安装程序
- 双击下载的
.msi文件(截图版本:mongodb-windows-x86_64-8.2.1-signed.msi),弹出安装向导,点击「Next」

- 勾选「I accept the terms in the License Agreement」,点击「Next」

- 选择安装类型:
- 「Complete」(默认,安装到
C:\Program Files\MongoDB\Server\版本号\) - 「Custom」(自定义路径,建议不要含中文 / 空格,如
D:\Program Files\MongoDB\Server\)

- 「Complete」(默认,安装到
- 关键配置(核心步骤):
- 取消勾选「Configure MongoDB as a Windows Service」(暂时不自动配置服务,后续手动配置更灵活)
-
关键信息解读:
- 服务安装选项:勾选了 “Install MongoDB as a Service”,即安装 MongoDB 作为系统服务,可实现开机自动启动。
- 运行用户:选择了 “Run service as Network Service user”,以网络服务用户身份运行服务,这种方式权限适中,适合常规使用;也可选择以本地或域用户运行,需填写账户域、名称和密码。
- 服务名称:默认 “MongoDB”,可自定义。
- 数据与日志目录:数据目录为
D:\Program Files\MongoDB\Server\8.2\data\,日志目录为D:\Program Files\MongoDB\Server\8.2\log\,均为自定义路径(非默认 C 盘路径),这种配置利于数据管理和磁盘空间规划。
-
- 点击「Next」,勾选「Install MongoDB Compass」(可视化工具,新手必备,默认勾选)

- 点击「Next」,→「Install」,等待安装完成


- 安装后,会提示MongoDB Compass安装:
- 取消勾选「Configure MongoDB as a Windows Service」(暂时不自动配置服务,后续手动配置更灵活)
- 安装后,在任务管理器的服务列表中,查看相应服务:

步骤 3:手动配置环境变量(关键)
目的:让 Windows 命令行识别 mongod(服务端)和 mongo(客户端)命令
- 打开「此电脑」→ 右键「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」中找到「Path」,点击「编辑」
- 点击「新建」,添加 MongoDB 的
bin目录路径:- 默认安装路径:
C:\Program Files\MongoDB\Server\8.2\bin(需替换为你的实际版本号) - 自定义路径:
D:\Program Files\MongoDB\Server\8.2\bin(根据实际安装路径修改)
- 默认安装路径:
- 点击「确定」保存,关闭所有环境变量窗口
- 验证环境变量:打开新的命令提示符(CMD),输入
mongos --version,若显示版本信息,说明配置成功,类似下面界面
三、MongoDB 服务管理(启动 / 停止 / 重启)
后续需管理 MongoDB 服务时,可通过以下 2 种方式:
方式 1:图形化操作(服务窗口)
- 按下
Win + R,输入services.msc,打开「服务」窗口 - 找到「MongoDB」服务:
- 启动:右键 →「启动」
- 停止:右键 →「停止」
- 重启:右键 →「重新启动」
- 修改启动类型:右键 →「属性」→ 启动类型(自动 / 手动 / 禁用)
方式 2:命令行操作(管理员身份)
- 以管理员身份打开命令提示符
- 执行对应命令:
- 启动服务:
net start MongoDB(服务名称需与安装时一致) - 停止服务:
net stop MongoDB - 查看服务状态:
sc query MongoDB
- 启动服务:
四、MongoDB Compass 链接
可视化工具验证(MongoDB Compass)
- 启动 MongoDB Compass,默认连接地址为
mongodb://localhost:27017(本地服务)
- 说明:
- 连接字符串(URI):默认显示
mongodb://localhost:27017/,这是连接本地 MongoDB 服务的默认地址(端口 27017 为 MongoDB 默认端口)。 - 功能选项:可设置连接名称(为当前配置的数据库连接设置一个自定义名称,通过自定义名称可以快速区分不同的连接)、颜色,也可将连接设为收藏。下方还有 “高级连接选项” 可配置更多参数(如认证、SSL 等,当前未展开)。
- 连接字符串(URI):默认显示
- 说明:
- 点击「Connect」,直接连接本地 MongoDB 服务

- 左侧导航栏可看到所有数据库
- 可通过 Compass 界面执行查询、添加 / 修改 / 删除数据,适合新手操作
五、了解MongoDB对象
MongoDB与传统关系型数据库的对比
| 传统关系型数据库(如 MySQL) | MongoDB | MongoDB 对象作用说明 |
|---|---|---|
| 数据库(Database) | 数据库(Database) | 用于逻辑上隔离不同的应用数据,是数据存储的顶层容器,一个 MongoDB 实例可包含多个数据库 |
| 表(Table) | 集合(Collection) | 存储一组相关的文档,类比表但无固定结构,无需预先定义字段,可灵活存储不同结构的文档 |
| 行(Row) | 文档(Document) | 以 BSON(类 JSON)格式存储的单条数据记录,是 MongoDB 的基本数据单元,可包含嵌套结构、数组等,字段可动态增减 |
| 列(Column) | 字段(Field) | 文档中的键值对,对应关系型数据库的列,但字段无需预先定义,同一集合的不同文档可包含不同字段 |
| 索引(Index) | 索引(Index) | 用于加速查询,支持单字段、复合字段、地理空间、文本等多种索引类型,功能与关系型数据库索引一致,提升查询性能 |
| 约束(Constraint,如主键、外键) | 无直接外键约束(靠应用层保障关联)、支持主键(_id 字段默认唯一) | MongoDB 不强制外键约束,通过文档嵌套、引用等方式实现数据关联,_id 字段为每个文档的唯一标识,类似主键 |
| 视图(View) | 视图(View) | 基于聚合管道定义的虚拟集合,用于封装复杂查询逻辑,功能与关系型数据库视图一致 |
| 存储过程(Stored Procedure) | 无直接存储过程(可通过应用层或 MongoDB 函数实现类似逻辑) | MongoDB 无内置存储过程,复杂业务逻辑可通过应用代码或 MongoDB 的聚合管道、函数来实现 |
关键差异与新手理解要点
-
结构灵活性:关系型数据库是结构化的,表需预先定义列结构;MongoDB 是半结构化的,集合无固定结构,文档可动态增减字段,适合业务需求频繁变化的场景。
-
数据关联方式:关系型数据库通过外键强制关联表间数据;MongoDB 无强制外键,可通过文档嵌套(将关联数据直接嵌入文档)或引用(存储关联文档的
_id)实现关联,更灵活但需应用层保障数据一致性。 -
扩展能力:关系型数据库表结构变更(如新增列)需执行 DDL 操作,可能影响业务;MongoDB 集合新增字段无需修改结构,文档可直接包含新字段,扩展性更强。
通过以上比对,新手可快速建立对 MongoDB 数据模型的认知,理解其 “文档优先、灵活无模式” 的设计理念,从而更高效地使用 MongoDB 进行数据存储与管理。
六、数据库与集合管理
6.1 创建新数据库
- 点击左侧导航栏的
+(新建数据库按钮)。
- 输入
Database Name(如my_mongo_db),输入Collection Name(如users),点击Create Database。
- 说明:
-
Database Name:输入数据库名称(如示例中的
my_mongo_db),是数据的顶层逻辑容器,用于隔离不同应用的数据。 -
Collection Name:输入集合名称(需手动填写),集合类比关系型数据库的 “表”,用于存储一组文档,无固定字段结构
- Time-Series:勾选后可创建时间序列集合,专为高效存储时序数据(如传感器读数、日志)设计,支持按时间维度的快速查询与存储优化。
- 高级配置
- Use Custom Collation:自定义字符串排序规则,可指定语言特定的比较规则(如大小写、重音标记的处理),适用于多语言业务场景。
- Clustered Collection(MongoDB 5.3 + 特性):勾选后创建集群集合,文档按主键顺序物理存储,大幅提升范围查询(如按 ID 区间查询)的性能。
-
- 说明:
6.2 单独创建集合(类比关系型数据库的 “表”)
- 点击目标数据库(如
my_mongo_db),进入数据库详情页。 - 点击
Create Collection,输入Collection Name(如products),点击Create。
七、数据 CRUD 操作(增删改查)
47.1 插入数据(Create)
- 进入目标集合(如
my_mongo_db.users),点击INSERT DOCUMENT。
- 在 JSON 编辑器中输入文档(示例):
json
{ "name": "张三", "age": 25, "email": "zhangsan@example.com" } - 点击
INSERT,完成数据插入。
- 重复上述过程,在增加一条
{ "name": "李四", "age": 18, "email": "lisi@example.com" }

7.2 查询数据(Read)
MongoDB Compass 的集合查询配置界面(以my_mongo_db数据库的users集合为例),用于精细化控制数据查询逻辑。

✍️以下是各模块功能说明:
1. 查询条件区域
-
Type a query:输入 JSON 格式的查询条件(如{ "age": { "$gt": 25 } }表示查询年龄大于 25 的用户),支持 MongoDB 所有查询操作符。 -
辅助功能:
-
Generate query:自动生成基础查询语句,降低新手学习成本。 -
Explain:分析查询执行计划,用于性能调优(如查看是否命中索引)。 -
Find:执行配置好的查询条件,展示结果。
-
2. 投影(Project)
用于控制查询结果中字段的包含 / 排除,格式为{ "字段名": 0 | 1 }:
-
0:排除该字段;1:包含该字段(默认包含所有字段)。 -
示例:
{ "email": 0 }表示查询结果不返回email字段,减少数据传输量。
3. 排序(Sort)
定义结果集的排序规则,格式为{ "字段名": 1 | -1 }:
-
1:升序;-1:降序。 -
支持复合排序,如
[["age", 1], ["name", -1]](先按年龄升序,再按姓名降序)。
4. 排序规则(Collation)
用于字符串的语言特定排序,默认{ "locale": "simple" }(简单排序)。
-
可修改为
"zh-CN"(中文排序)、"en-US"(英文排序)等,适配多语言业务场景。
5. 分页与索引优化
-
Skip/Limit:实现分页查询。Skip: N表示跳过前 N 条数据,Limit: N表示仅返回 N 条数据。 -
Index Hint:强制查询使用指定索引(如{ "age": -1 }),用于性能调优,确保查询命中最优索引。
具体操作示例如下。
7.2.1 基础查询
- 点击集合页面的
FILTER,输入查询条件(示例:查询年龄大于 20 的用户):json
{ "age": { "$gt": 20 } } - 点击
APPLY,显示查询结果。
7.2.2 排序与分页
- 排序:点击
SORT,输入排序字段(示例:按年龄升序):json
({ "age": 1 }1为升序,-1为降序)
- 分页:在
SKIP(跳过前 N 条)和LIMIT(返回 N 条)中输入数值(如SKIP: 0, LIMIT: 10)。
7.3 数据管理
书本划过文档,可以显示操作按钮,如下:

以下是各按钮的作用说明:
| 按钮图标 | 功能名称 | 作用解读 |
|---|---|---|
| 铅笔图标 | 编辑文档 | 点击后进入文档编辑模式,支持以 “树状视图” 或 “JSON 视图” 修改字段值,完成后保存即可更新文档内容。 |
| 双文档重叠图标 | 复制文档 | 复制当前文档的完整结构与数据,生成一份新的文档副本,可用于快速创建相似结构的文档。 |
| 剪贴板图标 | 复制文档 ID | 复制当前文档的_id字段值(MongoDB 文档的唯一标识),便于在查询、数据关联等场景中引用该文档。 |
| 垃圾桶图标 | 删除文档 | 点击后弹出确认框,确认后删除当前文档,需谨慎操作。 |
相关操作示例如下。
1)更新数据(Update)
- 选中目标文档,点击
EDIT。 - 选择编辑模式(Tree View 可视化修改 / JSON View 直接编辑 JSON),修改字段值(如将
age改为26)。 - 点击
REPLACE,保存更改。
2)删除数据(Delete)
- 选中目标文档,点击
DELETE。 - 在确认弹窗中点击
DELETE,完成删除。
八、索引管理
索引可提升查询性能,操作步骤如下:
- 进入目标集合,点击
INDEXES。 - 点击
CREATE INDEX,配置索引:- Key:选择字段(如
name),设置排序方向(1升序,-1降序)。 - 可选配置复合索引(多个字段组合,如
{ "name": 1, "age": -1 })、唯一索引(勾选 “Unique”,确保字段值唯一)。
- Key:选择字段(如
- 点击
CREATE INDEX,完成创建。
九、数据导入与导出
9.1 导入 JSON/CSV 数据
- 进入目标集合,点击
ADD DATA→Import JSON or CSV file选择文件,点击Open。
- 配置字段映射(CSV 文件需指定列与 MongoDB 字段的对应关系),点击
IMPORT。
9.2 导出数据
- 进入目标集合,点击
EXPORT query results 或者EXPORT the full collection - 选择导出格式(JSON 或 CSV)。
- 点击
EXPORT,选择保存路径完成导出。
十、聚合查询(复杂统计)
聚合用于分组、求和等复杂数据统计,操作步骤:
- 进入目标集合,点击
AGGREGATIONS。 - 点击
CREATE PIPELINE,添加阶段(Stage)(示例:统计各年龄段用户数):- 阶段 1(
$group):json
{ "_id": "$age", "count": { "$sum": 1 } } - 阶段 2(
$sort):json
{ "count": -1 } 
- 阶段 1(
- 点击
Run,查看聚合结果。
十一、常见问题排查
1. 启动服务失败(Windows)
- 报错「Data directory C:\data\db not found」:未创建数据目录,按步骤 4 手动创建
- 报错「端口 27017 被占用」:关闭占用端口的程序(如其他 MongoDB 进程),或指定其他端口启动:
mongod --port 27018 --dbpath C:\data\db
2. 命令行无法识别 mongosh
-
从 MongoDB 6.0 版本开始,
mongosh(MongoDB Shell)不再随服务端安装包一起安装,需要单独下载安装。以下是解决方法:下载并安装 mongosh
- 访问 MongoDB Shell 下载页:https://www.mongodb.com/try/download/shell
- 选择平台为 “Windows 64-bit (8.1+) (MSI)”,点击 “Download”
- 双击下载的安装包,按照提示完成安装



1439

被折叠的 条评论
为什么被折叠?



