MongoDB 环境安装
认识完 MongoDB 是什么,这一篇把环境搭起来。MongoDB 的工具链分三块:Server(数据存储的服务端进程)、mongosh(命令行交互 shell)、Compass(图形客户端)。新手如果不想本地折腾,还可以用云端的 Atlas 免安装上手。
1. macOS 安装
macOS 推荐 Homebrew,几行命令搞定。装完后服务会后台常驻,默认监听 27017 端口。
# macOS 用 Homebrew 最省事(没有 brew 先装: https://brew.sh)
brew tap mongodb/brew
brew install mongodb-community # MongoDB 服务端
brew install mongosh # 新版 shell(替代老 mongo)
brew install mongodb-compass # 图形客户端(可选)
# 启动服务(后台常驻)
brew services start mongodb-community
# 看是否在跑
brew services list | grep mongodb
# 输出大概: mongodb-community started ...
# 默认监听 27017 端口,数据目录在 /usr/local/var/mongodb如果想停止服务:brew services stop mongodb-community。日志在 /usr/local/var/log/mongodb,出问题先去看日志。
2. Linux(Ubuntu/Debian)安装
生产服务器大多是 Linux,用官方 apt 源装最稳。注意 MongoDB 官方源分版本(7.0、8.0 等),版本号要和你下载的对上。
# Ubuntu/Debian 用官方源(apt)
# 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-get update
sudo apt-get install -y mongodb-org
# 4. 启动
sudo systemctl start mongod
sudo systemctl enable mongod # 开机自启
sudo systemctl status mongod3. Windows 安装
Windows 有现成的 MSI 安装包,一路下一步即可。建议勾选"作为服务安装",这样开机自启,不用手动启动。
# Windows 推荐:
# 1. 去 https://www.mongodb.com/try/download/community
# 下载 MSI 安装包(Server 版本,选 Current 稳定版)
# 2. 双击安装,勾选 "Install MongoDB as a Service"
# 服务名保持默认 MongoDB,数据目录默认 C:\Program Files\MongoDB\Server\data
# 3. 安装程序会顺带问要不要装 Compass,勾上(图形界面)
# 4. mongosh 单独下: https://www.mongodb.com/try/download/shell
# 服务管理(PowerShell 管理员)
Start-Service MongoDB
Stop-Service MongoDB
Get-Service MongoDB4. 启动 mongosh——你的主战场
服务跑起来后,用 mongosh 连上去。mongosh 是个完整的 Node.js REPL,你可以写 JS 表达式、定义变量、用 for 循环批量插数据,远比老版的 mongo shell 强大。后面所有教程的示例都默认在 mongosh 里运行。
# 启动 mongosh(默认连本机 27017)
mongosh
# 进入后是交互式 JS 环境,先看版本
> version()
2.8.0
# 看当前有哪些数据库
> show dbs
admin 40.00 KiB
config 60.00 KiB
local 40.00 KiB
# 切换/创建数据库(首次写入才真正建立)
> use myblog
switched to db myblog
# 插一条试试
> db.posts.insertOne({ title: "第一篇", views: 0 })
{
acknowledged: true,
insertedId: ObjectId("65a1...")
}
# 查一下
> db.posts.find()
[ { _id: ObjectId("..."), title: "第一篇", views: 0 } ]
# 退出
> exit几个常用小技巧:
use 数据库名:切换数据库,不存在的话首次写入自动建。show dbs:列出所有数据库(空数据库不显示,要先写入数据)。show collections:列出当前库的集合。db:显示当前所在数据库。.pretty():让输出格式化好读(如db.posts.find().pretty())。- 按上下方向键可以翻历史命令,和 bash 一样。
5. Compass——图形客户端
纯命令行看数据有时不够直观,MongoDB 官方提供了 Compass 这个图形客户端(免费):
- 看数据:树状展开 database → collection → document,字段高亮、JSON 折叠。
- 写查询:图形界面填条件,或直接在 Shell 栏敲 mongosh 语法。
- 建索引:点几下就能加索引,看执行计划。
- 导入导出:支持 JSON / CSV。
- 实时性能:看当前正在跑的操作、慢查询。
启动后地址栏填 mongodb://localhost:27017 即可连接本地。新手强烈建议装一个,比纯黑框友好得多。
6. 不想装?用 Atlas 云数据库
如果你只是想跟着教程练手,不想折腾本地安装,MongoDB Atlas 提供永久免费的 M0 套餐(512MB 存储、共享内存,够学习和小项目用)。注册后给你一个 mongodb+srv://... 连接串,mongosh、Compass、应用代码都用这一条连。
# 完全不想本地装?用 Atlas 云数据库,3 分钟拿到连接串
#
# 1. 浏览器打开 https://www.mongodb.com/atlas
# 2. 注册账号(GitHub/Google 一键登录)
# 3. 选 "Free" 免费套餐(M0,512MB,够学习用)
# 4. 选离你近的 Region(国内用户选 AWS / Singapore)
# 5. 创建集群,等 1~3 分钟拉起来
# 6. Database Access → 加一个数据库用户(记好密码)
# 7. Network Access → 加你的 IP(或 0.0.0.0/0 允许全部,仅学习用)
# 8. Connect → Drivers → 复制连接串,类似:
#
# mongodb+srv://用户名:密码@cluster0.xxxxx.mongodb.net/
#
# 9. mongosh 直接连:
mongosh "mongodb+srv://cluster0.xxxxx.mongodb.net/" \
--username 你的用户名
# 或者在 Compass 地址栏粘贴同一条连接串,图形界面打开Atlas 的好处是免运维:副本集、备份、升级都自动。坏处是国内访问延迟较高(服务器在海外),生产环境国内项目通常还是自建或选国内云的托管服务。
7. 配置文件与数据目录
本地安装时,知道数据和配置在哪很重要(出问题要去看):
- 数据目录:默认
/data/db(Linux/Mac brew 装的话在/usr/local/var/mongodb或/opt/homebrew/var/mongodb)。 - 配置文件:通常
mongod.conf,可以改端口、绑定的 IP、开启认证等。 - 日志文件:启动失败先看这里,90% 是端口被占用或目录权限问题。
启动 mongod(服务进程)时可以手动指定参数:mongod --dbpath /自定义路径 --port 28018。一般用服务管理(systemctl / brew services)更省心。
8. 第一个完整流程:建库 → 插数据 → 查
把环境串起来跑一遍:启动 mongosh,切到自己的数据库,插几条文档,再查出来——确认整套链路通了,后面的教程才能继续。
# 启动 mongosh(默认连本机 27017)
mongosh
# 进入后是交互式 JS 环境,先看版本
> version()
2.8.0
# 看当前有哪些数据库
> show dbs
admin 40.00 KiB
config 60.00 KiB
local 40.00 KiB
# 切换/创建数据库(首次写入才真正建立)
> use myblog
switched to db myblog
# 插一条试试
> db.posts.insertOne({ title: "第一篇", views: 0 })
{
acknowledged: true,
insertedId: ObjectId("65a1...")
}
# 查一下
> db.posts.find()
[ { _id: ObjectId("..."), title: "第一篇", views: 0 } ]
# 退出
> exit能看到 insertOne 返回 acknowledged: true 和 find 把数据查出来,环境就 OK 了。
小结
这一篇你完成了三件事:本地装好 MongoDB Server、能用 mongosh 连上去、了解了 Compass 图形客户端和 Atlas 云选项。下一篇正式进入数据库的核心——增删改查(CRUD),从 insertOne 一路讲到 deleteMany。
← 上一篇 MongoDB 简介
下一篇 MongoDB 增删改查 →