mongodb shell命令

连接数据库

第一种:/opt/local/mogodb/bin/mongo --host 10.130.161.15:8000 

第二种:mongo IP:端口/数据库名 -u 用户名 -p 密码

退出:exit

1.创建用户

db.createUser( { user: "userName",
                 pwd: "password",
                 customData: { employeeId: 12345 },
                 roles: [ { role: "clusterAdmin", db: "dbName" },
                          { role: "readAnyDatabase", db: "dbName" },
                          "readWrite"] },
               { w: "majority" , wtimeout: 5000 } )
注:
(1)customData: 用于描述账户信息
(2)roles:
数据库用户角色
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
备份恢复角色
backup,retore:在进行备份、恢复时可以单独指定的角色,在db.createUser()方法中roles里面的db必须写成是admin库,要不然会 报错
数据库管理角色
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
集群管理角色
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
所有数据库角色
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限,
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
超级用户角色

root:只在admin数据库中可用。超级账号,超级权限

注:在有root账号的前提下,可先在admin下验证权限,然后再到相应数据库去为其它账号添加权限,此时可以不用在对应数据再库执db.auth()

2.删除用户

db.dropUser("userName")

3.修改用户权限

db.grantRolesToUser(
   "accountUser01",
   [ "readWrite" , { role: "read", db: "stock" } ],
   { w: "majority" , wtimeout: 4000 }
)

4.修改用户密码

db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")

5.随机取N条数据

db.xxx.aggregate([$sample:{size:3}]);

6.数据库相关

show dbs:显示数据库列表 
show collections:显示当前数据库中的集合(类似关系数据库中的表) 
show users:显示用户
use <db name>:切换当前数据库,这和MS-SQL里面的意思一样 
db.help():显示数据库操作命令,里面有很多的命令 
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) 
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页