1 安装
1.1 拉取Mongo镜像
docker pull mongo
1.2 确认拉取成功
1.3 启动mongodb
先创建一个目录用来挂在mongo的数据目录
启动mongodb
docker run -p 27017:27017 --name mymongo -v /usr/local/docker/mongo_data:/data/db --restart=always -d mongo
补充说明:
–restart=always docker重启后容器也自动重启,如果没有加
可以用以下命令
docker container update --restart=always 容器名字
1.4 测试
docker ps 查看
2 基本操作
进入容器内查看
docker exec -it 85d0609604b4 bash
2.1 查看mongodb版本
mongo --version
2.2 登陆mongo
mongo
2.3 数据库相关
2.3.1 查看数据库
show dbs
2.3.2 创建数据库
语法:use 数据库名
use blog
说明:此时show dbs
还是看不到数据库名字的,只有插入文档后,才能看得到
2.3.3 删除数据库
语法:
use 待删除数据库名字
db.dropDatabase()
db.dropDatabase()
2.3.4 修改数据库名字
4.0版本以下
db.copyDatabase('old_name', 'new_name');
use old_name
db.dropDatabase();
2.4 集合/表相关
2.4.1 创建集合
语法: db.createCollection(“集合名字”)
db.createCollection("bl_collection")
2.4.2 查看集合
show collections
或者
show tables
2.4.3 更新集合
语法:db.旧集合名字.renameCollection(“新集合名字”)
db.bl_collection.renameCollection("bl_collection_new")
2.4.4 删除集合
语法:db.集合名字.drop()
db.bl_collection_new.drop()
2.5 文档/数据记录相关
2.5.1 插入文档
语法:db.集合名字.insert(文档数据)
db.bl_collection.insert({
commentContent: '我是评论的内容',
commentUser: NumberInt(123456),
commentBlog: '1301794986045005824 ',
commentGood: NumberInt(0),
createdTime: '2020-09-21 15:30:30'
})
补充:只有插入文档后,才能看到数据库名字
2.5.2 查看文档
我们再插入两条数据方便进行测试
db.bl_collection.insert({
commentContent: '我是评论的内容2',
commentUser: NumberInt(222222),
commentBlog: '1301794986045005825 ',
commentGood: NumberInt(1),
createdTime: '2020-09-21 15:30:31'
})
db.bl_collection.insert({
commentContent: '我是评论的内容3',
commentUser: NumberInt(333333),
commentBlog: '1301794986045005826 ',
commentGood: NumberInt(2),
createdTime: '2020-09-21 15:30:32'
})
a) 查看所有文档
语法:db.集合名.find()
db.bl_collection.find()
b) 简洁方式查看
语法:db.集合名.find().pretty()
db.bl_collection.find().pretty()
c) 限制输出的文档数
语法:db.集合名.find().pretty().limit(数字)
db.bl_collection.find().pretty().limit(2)
d) 查找指定记录
db.bl_collection.find({
"commentGood": 2
}).pretty()
db.bl_collection.find({
commentGood: 2
}).pretty()
此处发现commentGoods加不加引号都一样
e) and查询
db.bl_collection.find({
"commentGood": 2,
"commentUser": 333333,
}).pretty()
或者
db.bl_collection.find({
$and: [
{"commentGood": 2},
{"commentUser": 333333}
]
}).pretty()
f) or查询
语法
db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
db.bl_collection.find({
$or: [
{"commentGood": 2},
{"commentUser": 222222}
]
}).pretty()
g) 条件查询
- (>) 大于 - $gt
- (<) 小于 - $lt
- (>=) 大于等于 - $gte
- (<= ) 小于等于 - $lte
以$gt为例,查询点赞数 commentGood > 1的数据
db.bl_collection.find({
"commentGood": {$gt: 1}
}).pretty()
h) 模糊查询
db.bl_collection.find({
"commentContent": {$regex: /内容3/}
}).pretty()
2.5.3 修改文档
语法:db.集合名.update(查询条件, {$set: 要更新的数据})
db.bl_collection.update(
{"commentGood": 2},
{
$set: {
"commentGood": 888,
"commentContent": "我是评论的内容"
}
}
)
查看结果确认
2.5.4 删除文档
语法:db.集合名.remove(查询条件)
db.bl_collection.remove({commentUser:333333})
确认删除成功
补充说明:删除必须条件query查询条件,否则会报错