Mongo使用shell操作
创建数据库
如果数据库不存在,则会创建数据数据库,否则会切换到该数据库
查看数据库
创建用户
1 2 3 4
| # root用户 db.createUser({user:"root",pwd:"root",roles:["root"]}) #读写权限 readWrite表示读写权限,对yapi有读写权限,对admin有读权限 db.createUser({user:"work",pwd:"work",roles:[{role:"readWrite",db:"yapi"},{role:"read",db:"admin"}]})
|
MongoDB 数据库默认角色
角色描述 |
角色标识 |
数据库用户角色 |
read、readWrite |
数据库管理角色 |
dbAdmin、dbOwner、userAdmin |
集群管理角色 |
clusterAdmin、clusterManager、clusterMonitor、hostManager |
备份恢复角色 |
backup、restore |
所有数据库角色 |
readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase |
超级用户角色 |
root |
查看该数据库下用户
删除用户
修改用户密码
1
| db.updateUser("work",{pwd:"123456"})
|
登录
插入文档
MongoDB通过集合来管理数据库,类似于数据库表,集合中包含了多个文档,文档类似于数据库表的记录
1 2 3
|
db.t_log.insert({_id:"aa",desc:"测试数据"})
|
查询文档
1 2 3 4 5
| db.t_log.find()
db.t_log.find({_id:"aa"})
|
常用的查询
- $gt 相当于大于,如 “goods”:{$gt:100}
- $gte 相当于大于等于,如 “goods”:{$gte:100}
- $lt 相当于小于,如 “goods”:{$lt:100}
- $lte 相当于小于等于,如 “goods”:{$lte:100}
- $eq 相当于等于,如”goods”:{$eq:100} 或者 {“goods”:100}
- $ne 相当于不等于,如”goods”:{$ne:100}
- $in 相当于in,如”tag”:{$in:[“JAVA”,”C++”]}
- $nin 相当于not in
更新操作
1
| db.t_log.updateOne({_id:"aa"},{$set:{"desc":"测试数据01"}})
|
有多种语法
1 2 3
| db.collection.updateOne(<filter>,<update>,<options>) db.collection.updateMany(<filter>,<update>,<options>) db.collection.replaceOne(<filter>,<replacement>,<options>)
|
replaceOne和updateOne的区别在于前者是替换整个文档,后者是更新部分文档
options有如下选项
- upsert,默认为false,如果设置为true,未匹配的文档会insert到数据库中
- writeConcern,对写入进行配置
- w,默认是{w:0},表示写入后不需要数据库发送确认ACK;{w:1},数据写入大主库就会向客户端发送确认;{w:”majority”},数据写入到所有节点后向客户端发送确认
- wtimeout,当w大于1时,设置一个等待时间,单位为毫秒,如果超过这个时间,即使数据成功写入,客户端也会得到一个错误消息
删除操作
1 2 3 4 5
| db.t_log.deleteMany({})
db.t_log.deleteOne({_id:"aa"})
|