MongoDB 简介
MongoDB 是一个基于文档的 NoSQL 数据库,使用类似 JSON 的 BSON 格式存储数据。与传统的关系型数据库不同,MongoDB 提供了更灵活的数据模型,支持动态模式和复杂查询,适合处理大规模数据和高并发场景。
在本教程中,我们将使用 Docker 快速部署 MongoDB,并载入官方提供的测试数据集,以便于进行开发和测试。
MongoDB Docker 启动
不太推荐的方式是直接使用
docker run
命令启动 MongoDB 容器,不便于管理,并且配置会在 Shell 历史记录中有安全隐患:cd 项目目录 mkdir -p ./mydata/mongodb_test docker run -d \ -p 127.0.0.1:27017:27017 \ --name mongodb_test \ -v ./mydata/mongodb_test:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=admin \ -e MONGO_INITDB_ROOT_PASSWORD='密码' \ mongo:latest
推荐的方式是使用
docker compose
来管理 MongoDB 容器,方便配置和扩展。首先,创建一个docker-compose.yml
文件:创建
docker-compose.yml
文件services: mongodb_test: image: mongo:latest container_name: mongodb_test restart: unless-stopped environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: 密码 ports: - "127.0.0.1:27017:27017" volumes: - ./mydata/mongodb_test:/data/db
启动 MongoDB 服务:
docker-compose up -d
载入官方测试数据
下载官方测试数据集:
curl https://atlas-education.s3.amazonaws.com/sampledata.archive -o sampledata.archive
复制数据集到 MongoDB 容器中:
docker cp sampledata.archive mongodb_test:/tmp/
使用 MongoDB 容器内的
mongorestore
命令导入数据:docker exec -it mongodb_test mongorestore --username admin --password '密码' --authenticationDatabase admin --archive=/tmp/sampledata.archive
使用 MongoDB 容器内的
mongosh
查看数据:docker exec -it mongodb_test mongosh -u admin -p '密码' --authenticationDatabase admin # 进入 mongosh 环境后 test> show dbs
如此,便完成了 MongoDB 的快速部署和数据载入。你可以在 mongodb_test
容器中查看和操作导入的数据。