1.使用pull安装
docker search mongo
docker pull mongo
docker images mongo
image.png
2.使用mongodb镜像
docker run -p 27018:27017 -v $PWD/db:/data/db -d mongo:dev
docker ps
image.png
参数说明:
-p 27018:27017 :将容器的27018 端口映射到主机的27017 端口
-v $PWD/db:/data/db :将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录
3.连接到mongodb
docker run -it mongo:dev mongo --host xxx.xxx.xxx.xxx
image.png
4.mongodb的常用命令
show dbs
#查看数据库列表
db
#查看当前数据库对象
use local
#连接指定数据库
image.png
需要注意的是:有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
#创建数据库并插入数据
use runabc
db
db.runabc.insert({"tag":"abc"})
show dbs
image.png
需要注意的是,集合只有在插入内容后才会被创建
#删除数据库
use t1
switched to db t1
image.png
#创建集合
db.createCollection("r1")
db.r2.insert({"name":"meimei"})
show collections
image.png
#删除集合
show collections
db.runabc.drop()
image.png
#查看已插入的文档
db.r2.find()
image.png
另外,还可以使用变量的方式插入
user=({name:'xiaoming',age:15});
db.user.insert(user)
db.user.save(user)
db.user.find()
image.png
需要注意的是:如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
#更新文档
db.user.update({'name':'xiaoming'},{$set:{'name':'小明'}})
db.user.find()
image.png
#删除文档
db.user.remove({'name':'daxiong'})
db.user.find()
image.png
如果要删除全部的,则
db.user.remove({})
查看文档时,格式化可使用
db.user.find().pretty()
网友评论