MongoDB入门与安装配置:开启NoSQL数据库之旅

写在前面: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
- 差异比较

免费版足够个人使用
复制代码
📀 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
本文声明:原创不易,转载需授权!

相关推荐
2301_795099741 小时前
c++怎么在Linux下通过文件描述符获取详细的Inode节点信息【底层】
jvm·数据库·python
阿正呀1 小时前
Bootstrap与Vite打包 Bootstrap项目如何使用Vite构建
jvm·数据库·python
m0_596749091 小时前
Python编写Flask接口如何防止爬虫抓取_使用User-Agent与频率限制
jvm·数据库·python
神明9311 小时前
c++如何判断一个路径是否是符号链接_is_symlink函数用法【附代码】
jvm·数据库·python
神明9311 小时前
如何实现SQL存储过程动态排序_配合参数过滤与排序逻辑
jvm·数据库·python
2401_880071401 小时前
PHP 多维数组中按唯一 ID 生成从 0 开始的连续序号
jvm·数据库·python
2401_846339561 小时前
mysql如何审计误删除数据操作_mysql binlog逆向分析追踪
jvm·数据库·python
2301_769340671 小时前
如何快速查询SQL中的重复记录:GROUP BY与COUNT统计
jvm·数据库·python
m0_741481781 小时前
SQL嵌套查询逻辑重构_将复杂业务逻辑移至应用层
jvm·数据库·python