写在前面:MongoDB是最流行的NoSQL数据库之一,以其灵活的文档模型和强大的性能广受欢迎。本篇将带您从零开始,全面掌握MongoDB的安装、配置和核心概念。
文章目录
-
- 一、MongoDB简介
-
- [1.1 什么是MongoDB?](#1.1 什么是MongoDB?)
- [1.2 NoSQL vs 关系型数据库](#1.2 NoSQL vs 关系型数据库)
- [1.3 MongoDB应用场景](#1.3 MongoDB应用场景)
- 二、Windows安装MongoDB
-
- [2.1 下载MongoDB](#2.1 下载MongoDB)
- [2.2 安装步骤](#2.2 安装步骤)
- [2.3 配置环境变量](#2.3 配置环境变量)
- [2.4 验证安装](#2.4 验证安装)
- 三、Linux安装MongoDB
-
- [3.1 Ubuntu/Debian安装](#3.1 Ubuntu/Debian安装)
- [3.2 CentOS/RHEL安装](#3.2 CentOS/RHEL安装)
- [3.3 验证安装](#3.3 验证安装)
- 四、macOS安装MongoDB
-
- [4.1 使用Homebrew安装](#4.1 使用Homebrew安装)
- [4.2 验证安装](#4.2 验证安装)
- 五、MongoDB配置与启动
-
- [5.1 数据目录配置](#5.1 数据目录配置)
- [5.2 配置文件示例](#5.2 配置文件示例)
- [5.3 启动与停止](#5.3 启动与停止)
- 六、核心概念解析
-
- [6.1 数据库结构](#6.1 数据库结构)
- [6.2 文档示例](#6.2 文档示例)
- [6.3 集合与文档特点](#6.3 集合与文档特点)
- 七、第一个MongoDB程序
-
- [7.1 连接MongoDB](#7.1 连接MongoDB)
- [7.2 基本操作](#7.2 基本操作)
- 八、可视化工具
-
- [8.1 MongoDB Compass(官方推荐)](#8.1 MongoDB Compass(官方推荐))
- [8.2 Studio 3T](#8.2 Studio 3T)
- [8.3 Navicat](#8.3 Navicat)
- 九、常见问题解决
-
- [9.1 启动失败](#9.1 启动失败)
- [9.2 权限问题](#9.2 权限问题)
- [9.3 连接问题](#9.3 连接问题)
- 十、总结
一、MongoDB简介
1.1 什么是MongoDB?
📚 MongoDB概念:
MongoDB是一个基于文档(Document)的NoSQL数据库,
使用JSON格式(BSON)存储数据,被誉为"最像关系数据库的NoSQL"。
特点:
✅ 文档模型 - 灵活的数据结构
✅ 高性能 - 支持千万级数据
✅ 高可用 - 副本集自动故障转移
✅ 易扩展 - 分片支持海量数据
✅ 强支持 - 社区活跃,文档完善
1.2 NoSQL vs 关系型数据库
🔄 传统数据库 vs MongoDB:
┌──────────────────┬─────────────────────┬─────────────────────┐
│ 特性 │ 关系型数据库 │ MongoDB │
├──────────────────┼─────────────────────┼─────────────────────┤
│ 数据模型 │ 行与列的表格 │ 灵活的文档 │
│ 模式 │ 固定模式 │ 无模式/动态模式 │
│ 事务 │ ACID完全支持 │ 单文档事务 │
│ 扩展性 │ 垂直扩展 │ 水平扩展 │
│ 查询语言 │ SQL │ JavaScript │
│ 典型代表 │ MySQL、PostgreSQL │ MongoDB │
└──────────────────┴─────────────────────┴─────────────────────┘
1.3 MongoDB应用场景
🎯 适用场景:
✅ 内容管理系统 - 灵活的文章结构
✅ 实时分析 - 日志、行为数据存储
✅ 物联网 - 海量设备数据存储
✅ 移动应用 - 地理位置数据
✅ 电商系统 - 商品目录、订单
✅ 社交网络 - 用户资料、朋友圈
❌ 不适用场景:
❌ 强事务需求(如银行转账)
❌ 复杂的联表查询
❌ 结构固定的数据分析
二、Windows安装MongoDB
2.1 下载MongoDB
bash
# 方法1:直接下载
# 访问 https://www.mongodb.com/try/download/community
# 选择:Community Server → Windows → MSI → Download
# 方法2:使用winget(推荐)
wing install MongoDB.Server
2.2 安装步骤
📝 Windows安装流程:
1. 双击下载的MSI安装包
2. 点击 "Next" 同意协议
3. 选择 "Complete" 完全安装
4. 取消勾选 "Install MongoDB Compass"(后面单独安装)
5. 点击 "Next" → "Install" 开始安装
6. 安装完成后点击 "Finish"
2.3 配置环境变量
bash
# 1. 找到MongoDB安装目录(默认)
C:\Program Files\MongoDB\Server\7.0\bin
# 2. 添加到系统环境变量
# 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
# 在Path中添加上述路径
2.4 验证安装
bash
# 打开命令提示符,执行
mongod --version
# 输出示例:
# db version v7.0.5
# Build Info: { version: "7.0.5", ... }
三、Linux安装MongoDB
3.1 Ubuntu/Debian安装
bash
# 1. 导入公钥
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
# 2. 创建源列表
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
# 3. 更新并安装
sudo apt update
sudo apt-get install -y mongodb-org
# 4. 启动MongoDB
sudo systemctl start mongod
sudo systemctl enable mongod # 开机自启
3.2 CentOS/RHEL安装
bash
# 1. 创建yum源文件
cat > /etc/yum.repos.d/mongodb-org-7.0.repo << 'EOF'
[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
EOF
# 2. 安装
sudo yum install -y mongodb-org
# 3. 启动
sudo systemctl start mongod
sudo systemctl enable mongod
3.3 验证安装
bash
# 检查服务状态
sudo systemctl status mongod
# 连接测试
mongosh --eval "db.version()"
四、macOS安装MongoDB
4.1 使用Homebrew安装
bash
# 1. 更新Homebrew
brew update
# 2. 安装MongoDB
brew install mongodb-community@7.0
# 3. 启动MongoDB(前台运行)
mongod --config /usr/local/etc/mongod.conf
# 4. 或者作为服务运行
brew services start mongodb-community@7.0
4.2 验证安装
bash
# 检查服务状态
brew services list
# 连接测试
mongosh --eval "db.version()"
五、MongoDB配置与启动
5.1 数据目录配置
bash
# 创建数据目录(Linux/macOS)
sudo mkdir -p /data/db
sudo chown -R $(whoami) /data/db
# Windows数据目录默认在 C:\data\db
# 需要手动创建
5.2 配置文件示例
yaml
# mongod.conf
storage:
dbPath: /data/db
journal:
enabled: true
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
net:
port: 27017
bindIp: 127.0.0.1
processManagement:
timeZoneInfo: /usr/share/zoneinfo
5.3 启动与停止
bash
# 启动MongoDB
# Linux
sudo systemctl start mongod
# 或前台运行
mongod
# Windows
net start MongoDB
# 停止MongoDB
# Linux
sudo systemctl stop mongod
# Windows
net stop MongoDB
# 重启
sudo systemctl restart mongod
六、核心概念解析
6.1 数据库结构
🗂️ MongoDB层次结构:
┌─────────────┐
│ Server │ 一台MongoDB服务器
└─────────────┘
│
▼
┌─────────────┐
│ Database │ 数据库(如:myapp)
└─────────────┘
│
▼
┌─────────────┐
│ Collection │ 集合(如:users)
└─────────────┘
│
▼
┌─────────────┐
│ Document │ 文档(如:{name:"张三", age:25})
└─────────────┘
6.2 文档示例
javascript
// 用户文档示例
{
"_id": ObjectId("507f1f77bcf86cd799439011"),
"username": "zhangsan",
"email": "zhangsan@example.com",
"age": 25,
"address": {
"city": "北京",
"district": "朝阳区",
"street": "建国路88号"
},
"tags": ["程序员", "摄影", "旅行"],
"createdAt": ISODate("2024-01-15T10:30:00Z"),
"status": "active"
}
6.3 集合与文档特点
📝 MongoDB文档特点:
1. 灵活的键值对
- 不需要预先定义Schema
- 同一集合中文档结构可以不同
2. BSON数据类型
- String、Number、Boolean
- Object、Array
- Date、ObjectId
- Null、Binary Data
3. _id主键
- 自动生成ObjectId
- 唯一标识文档
七、第一个MongoDB程序
7.1 连接MongoDB
bash
# 使用mongosh连接(推荐)
mongosh
# 指定数据库连接
mongosh "mongodb://localhost:27017/myapp"
# 带认证连接
mongosh "mongodb://username:password@localhost:27017/myapp"
7.2 基本操作
javascript
// 查看数据库
show dbs
// 切换/创建数据库
use myapp
// 查看当前数据库
db
// 查看集合
show collections
// 创建集合
db.createCollection("users")
// 插入文档
db.users.insertOne({
name: "张三",
age: 25,
city: "北京"
})
// 查询文档
db.users.find()
// 更新文档
db.users.updateOne(
{ name: "张三" },
{ $set: { age: 26 } }
)
// 删除文档
db.users.deleteOne({ name: "张三" })
八、可视化工具
8.1 MongoDB Compass(官方推荐)
📊 MongoDB Compass:
官方提供的免费可视化工具,
功能强大,支持:
- 查看数据库和集合
- 查询和过滤数据
- 构建聚合管道
- 分析查询性能
- 管理索引
下载:https://www.mongodb.com/products/compass
8.2 Studio 3T
🔧 Studio 3T:
功能丰富的MongoDB GUI:
- SQL查询支持
- 数据导入导出
- 智能shell
- 差异比较
免费版足够个人使用
8.3 Navicat
📀 Navicat:
知名数据库管理工具,
也支持MongoDB,
适合已熟悉Navicat的用户
九、常见问题解决
9.1 启动失败
❓ 问题:MongoDB启动失败,端口被占用
✅ 解决:
# 查看端口占用
netstat -an | grep 27017
# 或
lsof -i :27017
# 杀掉占用进程
kill -9 <PID>
# 或者修改端口
mongod --port 27018
9.2 权限问题
❓ 问题:Permission denied: /data/db
✅ 解决:
sudo chown -R $(whoami) /data/db
9.3 连接问题
❓ 问题:Failed to connect to localhost:27017
✅ 解决:
# 1. 检查MongoDB是否启动
sudo systemctl status mongod
# 2. 启动MongoDB
sudo systemctl start mongod
# 3. 检查防火墙
sudo firewall-cmd --list-ports
十、总结
📊 本篇总结:
✅ 掌握内容:
- MongoDB基本概念和特点
- Windows/Linux/macOS安装
- MongoDB配置和启动
- 核心概念:数据库、集合、文档
- 基本CRUD操作
- 可视化工具使用
作者 :刘~浪地球
更新时间 :2026-05-08
本文声明:原创不易,转载需授权!