Mongodb 常用命令

基本操作

连接数据库

1
./mongo 127.0.0.1:7003/admin -u admin -p

认证

1
db.auth('userName','pwd')

数据库操作

1
2
# 查看数据库
show dbs

用户管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 查看用户
show users
# 创建用户
use admin
db.createUser(
{
user: "root",
pwd: "abcd-1234",
roles: [ { role: "root", db: "admin" } ]
}
)
# 删除用户
use dbName
db.dropUser("userName")
# 修改密码
# 方法1:
db.changeUserPassword("userName","newPwd")
# 方法2:
db.updateUser("userName",{pwd:"newPwd"})
# 修改权限
db.updateUser("userName",{roles:[{role:"read",db:"testDB"}]})
# 注:updateuser 它是完全替换之前的值,如果要新增或添加 roles 而不是代替它
# 添加权限
db.grantRolesToUser("userName", [{role:"readWrite", db:"testDB"},{role:"read", db:"testDB"}])
# 删除权限
db.revokeRolesFromUser("userName",[{role:"read", db:"testDB"}])

权限详解

内建角色

  1. 数据库用户角色: read、readWrite
  2. 数据库管理角色: dbAdmin、dbOwner、userAdmin
  3. 集群管理角色: clusterAdmin、clusterManager、clusterMonitor、hostManager
  4. 备份恢复角色: backup、restore
  5. 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色: root;这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
  7. 内部角色: __system

角色说明

  1. Read: 允许用户读取指定数据库
  2. readWrite: 允许用户读写指定数据库
  3. dbAdmin: 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  4. userAdmin: 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  5. dbOwner: 允许在当前DB中执行任意操作
  6. readAnyDatabase: 赋予用户所有数据库的读权限,只在admin数据库中可用
  7. readWriteAnyDatabase: 赋予用户所有数据库的读写权限,只在admin数据库中可用
  8. userAdminAnyDatabase: 赋予用户所有数据库管理User的权限,只在admin数据库中可用
  9. dbAdminAnyDatabase: 赋予管理所有数据库的权限,只在admin数据库中可用
  10. root: 超级账号,超级权限,只在admin数据库中可用。

集群管理角色

  1. clusterAdmin: 赋予管理集群的最高权限,只在admin数据库中可用
  2. clusterManager: 赋予管理和监控集群的权限
  3. clusterMonitor: 赋予监控集群的权限,对监控工具具有 readonly 的权限
  4. hostManager: 赋予管理Server

数据导入导出

csc 导入 mongo

1
2
3
4
mongoimport -h [host] --port [port] -u [userName] -p [password] -d [dbName] -c [collectionName] --type csv --headerline --file [importPath]
# 例子:
mongoimport -h 127.0.0.1 --port 7003 -u edudot -p abcd-1234 -d edudot -c users --type csv --headerline --file "D:\Users\Wenhao.Wu\Desktop\users.csv"

mongo 导出

1
2
3
4
mongoexport -h [host] --port [port] -u [userName] -p [password] -d [dbName] -c [collectionName] -f [字段,多个资源英文逗号分隔] --type=csv -o [exportPath] --query=[queryString] --limit=[limitNum]
# 例子:
mongoexport -h 127.0.0.1 --port 7003 -u admin -p abcd-1234 -d edudot -c fc_msg -f _id,category --type=csv -o "D:\Users\Wenhao.Wu\Desktop\test.csv" --query="{'_id':'asfd'}" --limit=500

参考文章

轻狂书生 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!