2.8 KiB
2.8 KiB
MongoDB 安装和配置指南
一、解决 Docker 镜像拉取问题
方法 1: 配置 Docker 镜像加速器(推荐)
macOS (Docker Desktop):
- 打开 Docker Desktop
- 进入 Settings -> Docker Engine
- 添加以下配置:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
- 点击 "Apply & Restart"
- 重新拉取镜像:
docker pull mongo:7.0
Linux:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF
sudo systemctl restart docker
docker pull mongo:7.0
方法 2: 使用国内镜像源
# 使用阿里云镜像
docker pull registry.cn-hangzhou.aliyuncs.com/acs/mongo:7.0
docker tag registry.cn-hangzhou.aliyuncs.com/acs/mongo:7.0 mongo:7.0
# 或使用网易镜像
docker pull hub-mirror.c.163.com/library/mongo:7.0
docker tag hub-mirror.c.163.com/library/mongo:7.0 mongo:7.0
二、安装 Go MongoDB 驱动
cd dd_fiber_api
go get go.mongodb.org/mongo-driver/mongo
go get go.mongodb.org/mongo-driver/bson
go get go.mongodb.org/mongo-driver/mongo/options
go mod tidy
三、启动 MongoDB
cd dd_fiber_api/deploy
chmod +x mongodb-start.sh mongodb-stop.sh
./mongodb-start.sh
四、验证连接
# 进入 MongoDB Shell
docker exec -it mongodb-question mongosh -u admin -p admin123456 --authenticationDatabase admin
# 测试连接
use question_db
db.questions.insertOne({_id: "test", title: "测试题目"})
db.questions.find()
五、已创建的文件
- ✅
pkg/database/mongodb.go- MongoDB 客户端封装 - ✅
internal/question/dao/question_dao_mongo.go- 题目 DAO 实现示例 - ✅
deploy/docker-compose.mongodb.yml- Docker Compose 配置 - ✅
deploy/mongodb-start.sh- 启动脚本(支持自动使用国内镜像) - ✅
deploy/mongodb-stop.sh- 停止脚本 - ✅
config/config.go- 已添加 MongoDBConfig - ✅
config.yaml- 已添加 MongoDB 配置示例
六、MongoDB 实现优势
相比 MySQL,MongoDB 在题库系统中的优势:
- 文档模型:天然支持 JSON,题目、试卷等复杂结构更直观
- 数组查询:标签等数组字段查询更方便
- 全文搜索:内置文本索引,支持全文搜索
- 灵活扩展:无需预定义表结构,易于扩展
- 性能优秀:读性能好,适合读多写少的场景
七、注意事项
- 全文搜索:MongoDB 的文本索引对中文支持有限,可能需要使用 bleve 等第三方库
- 事务:MongoDB 4.0+ 支持事务,但性能不如 MySQL
- 数据备份:定期备份 MongoDB 数据