Docker安装MongoDB

wxvirus2023年6月17日
大约 1 分钟

安装 mongo 镜像

可以搜索一下有什么适合你的版本的我这里下的是4.4.7

docker search mongo
docker pull mongo:4.4.7

配置本地卷

在你们合适的目录新建对应的进行映射的目录,我是在用户目录下新建了一个mydata/mongo文件夹,用于存储映射的一些相关的文件。

需要在目录下新建一个配置文件:mongod.conf

net:
   port: 27017
   bindIp: "0.0.0.0"

storage:
   dbPath: "/data/db"

security:
   authorization: enabled

提示

MacOS 无法使用root目录,所以我们需要换成其他的目录,别的系统的就算了。

创建容器运行

创建容器,为 MongoDB 分配 500M 内存

docker run -it -d --name mongo -p 27017:27017 \
-v /Users/yourname/mydata/mongo:/etc/mongo -m 500m \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
-e TZ=Asia/Shanghai \
mongo:4.4.7 --config /etc/mongo/mongod.conf

  • MONGO_INITDB_ROOT_USERNAME: 设置用户名
  • MONGO_INITDB_ROOT_PASSWORD: 设置密码

本地连接测试

使用 navicate 进行连接测试

注意主机名

先前我默认是localhost,出现错误,后来也换了我本机的ip地址进行测试,谁知道最后直接127.0.0.1就可以。

Mongo 语法

MySQL 和 Mongo 的对比

SQLMongo
表 Table集合 Collection
行 Row文档 Document
列 Col字段 Field
主键 Primary Key对象 ID ObjectId

数据库操作

创建数据库Use demo
查看数据库show dbs
删除数据库db.dropDatabase()

集合操作

创建集合db.createCollection(name)
查看集合show collections
删除集合db.collection.drop()

文档操作

创建文档db.collection.insertOne({}) db.collection.insertMany([])
查看文档db.collections.find({})
删除文档db.collection.deleteOne() db.collection.deleteMany()
更新文档db.collection.update({}, {}, false, true)

条件操作

大于$gt
小于$lt
大于等于$gte
小于等于$lte
Loading...