MongoDB 安装与使用指南
阅读量:8次 发布时间::2026/1/5
一、安装 MongoDB
1. 官方下载地址
官网首页:https://www.mongodb.com/
下载中心:https://www.mongodb.com/try/download/community
企业版:https://www.mongodb.com/try/download/enterprise
Atlas云服务:https://www.mongodb.com/cloud/atlas(无需安装,注册即用)
2. 各平台安装方式
Windows 系统
bash
# 方式1:使用MSI安装程序(推荐初学者)
1. 访问下载页面,选择 Windows 版本
2. 下载 .msi 安装包
3. 双击运行,按向导安装
4. 可选安装 MongoDB Compass(图形界面工具)
# 方式2:使用 Chocolatey 包管理器
choco install mongodb
# 安装后验证
mongod --version
macOS 系统
bash
# 方式1:使用 Homebrew(最简便)
brew tap mongodb/brew
brew install mongodb-community
# 启动服务
brew services start mongodb-community
# 方式2:下载 .tgz 压缩包
# 从官网下载,解压后配置环境变量
Linux 系统
bash
# Ubuntu/Debian
# 1. 导入公钥
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
# 2. 添加源
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# 3. 安装
sudo apt-get update
sudo apt-get install -y mongodb-org
# 4. 启动服务
sudo systemctl start mongod
sudo systemctl enable mongod
# CentOS/RHEL
# 创建 repo 文件
sudo vi /etc/yum.repos.d/mongodb-org-6.0.repo
# 添加官方源后安装
Docker 方式(跨平台推荐)
bash
# 拉取镜像
docker pull mongo
# 运行容器
docker run -d \
--name mongodb \
-p 27017:27017 \
-v ~/mongo_data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:latest
# 或使用 docker-compose
3. 云服务(无需安装)
MongoDB Atlas:官方云服务,免费512MB存储
其他云厂商:
AWS DocumentDB
Azure Cosmos DB MongoDB API
阿里云 MongoDB
二、基本使用教程
1. 启动 MongoDB 服务
bash
# Windows(如果安装时配置了服务)
# 服务自动启动,或从服务管理启动
# macOS/Linux
sudo systemctl start mongod # 或 brew services start mongodb-community
# 检查状态
sudo systemctl status mongod
2. 连接数据库
bash
# 方式1:命令行客户端
mongosh # 新版MongoDB Shell(推荐)
# 或
mongo # 旧版,逐渐淘汰
# 方式2:带认证的连接
mongosh "mongodb://username:password@localhost:27017/dbname"
# 方式3:图形界面工具
# - MongoDB Compass(官方,免费)
# - Robo 3T / Studio 3T
# - NoSQLBooster
3. 基本操作命令
数据库操作
javascript
// 查看所有数据库
show dbs
// 切换/创建数据库
use mydatabase // 当第一次插入数据时真正创建
// 查看当前数据库
db
// 删除数据库
db.dropDatabase()
集合(表)操作
javascript
// 查看所有集合
show collections
// 创建集合
db.createCollection("users")
// 删除集合
db.users.drop()
文档(记录)CRUD操作
插入文档
javascript
// 插入单条
db.users.insertOne({
name: "张三",
age: 25,
email: "zhangsan@example.com",
tags: ["developer", "nodejs"],
created_at: new Date()
})
// 插入多条
db.users.insertMany([
{ name: "李四", age: 30 },
{ name: "王五", age: 28 }
])
查询文档
javascript
// 查询所有
db.users.find()
// 美化输出
db.users.find().pretty()
// 条件查询
db.users.find({ age: { $gt: 25 } }) // 年龄大于25
db.users.find({ name: /张/ }) // 正则匹配
// 查询特定字段
db.users.find({}, { name: 1, age: 1 }) // 只返回name和age
// 查询一条
db.users.findOne({ name: "张三" })
// 计数
db.users.countDocuments({ age: { $gt: 25 } })
更新文档
javascript
// 更新一条
db.users.updateOne(
{ name: "张三" },
{ $set: { age: 26, updated_at: new Date() } }
)
// 更新多条
db.users.updateMany(
{ age: { $lt: 30 } },
{ $set: { category: "young" } }
)
// 替换文档
db.users.replaceOne(
{ name: "张三" },
{ name: "张三", age: 27, city: "北京" }
)
删除文档
javascript
// 删除一条
db.users.deleteOne({ name: "李四" })
// 删除多条
db.users.deleteMany({ age: { $lt: 25 } })
4. 索引操作
javascript
// 创建索引
db.users.createIndex({ email: 1 }) // 单字段索引
db.users.createIndex({ name: 1, age: -1 }) // 复合索引
db.users.createIndex({ "address.city": 1 }) // 嵌套字段索引
// 创建唯一索引
db.users.createIndex({ email: 1 }, { unique: true })
// 查看索引
db.users.getIndexes()
// 删除索引
db.users.dropIndex("email_1")
5. 聚合管道示例
javascript
// 分组统计
db.orders.aggregate([
{ $match: { status: "completed" } },
{ $group: {
_id: "$customer_id",
total: { $sum: "$amount" },
count: { $sum: 1 }
}
},
{ $sort: { total: -1 } },
{ $limit: 10 }
])
三、编程语言连接示例
Node.js
javascript
// 安装驱动
npm install mongodb
// 连接示例
const { MongoClient } = require('mongodb');
async function main() {
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);
try {
await client.connect();
const database = client.db("mydb");
const collection = database.collection("users");
// 插入示例
const result = await collection.insertOne({
name: "测试用户",
created_at: new Date()
});
console.log("插入ID:", result.insertedId);
} finally {
await client.close();
}
}
main();
Python
python
# 安装驱动
pip install pymongo
# 连接示例
from pymongo import MongoClient
from datetime import datetime
client = MongoClient('localhost', 27017)
db = client['mydb']
collection = db['users']
# 插入数据
collection.insert_one({
'name': '测试用户',
'created_at': datetime.now()
})
# 查询数据
for user in collection.find({'name': '测试用户'}):
print(user)
Java
java
// Maven依赖
// <dependency>
// <groupId>org.mongodb</groupId>
// <artifactId>mongodb-driver-sync</artifactId>
// <version>4.9.0</version>
// </dependency>
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
MongoClient client = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = client.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("users");
// 插入文档
Document doc = new Document("name", "测试用户")
.append("created_at", new Date());
collection.insertOne(doc);
四、图形化管理工具
1. MongoDB Compass(官方推荐)
下载:https://www.mongodb.com/products/compass
特性:
可视化的查询构建器
实时性能监控
索引管理
导入/导出数据
Schema分析
2. Studio 3T / Robo 3T
下载:https://studio3t.com/
特性:
强大的SQL查询支持
数据对比和同步
代码生成
可视化的聚合管道构建器
3. NoSQLBooster
下载:https://www.nosqlbooster.com/
特性:
类似SQL的查询语言
智能提示
可视化工具丰富
五、最佳实践建议
1. 安全配置
bash
# 启用认证(首次启动后配置)
# 1. 连接mongosh
mongosh
# 2. 创建管理员
use admin
db.createUser({
user: "admin",
pwd: "strong_password",
roles: ["root"]
})
# 3. 重启启用认证
# 修改配置文件 /etc/mongod.conf
security:
authorization: enabled
# 4. 重启服务
sudo systemctl restart mongod
2. 生产环境配置
yaml
# 配置文件示例(/etc/mongod.conf)
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
net:
port: 27017
bindIp: 127.0.0.1 # 生产环境限制IP
processManagement:
fork: true
security:
authorization: enabled
3. 备份与恢复
bash
# 备份单个数据库
mongodump --uri="mongodb://localhost:27017/mydb" --out=/backup/
# 恢复数据库
mongorestore --uri="mongodb://localhost:27017" /backup/mydb/
# Atlas云备份(自动)
# 在Atlas控制台配置备份策略
六、学习资源
官方资源
文档:https://docs.mongodb.com/
大学课程:https://university.mongodb.com/(免费认证课程)
中文手册:https://docs.mongoing.com/