MongoDB基本操作
1. MongoDB用户权限列表,分为管理员和普通用户
read |
允许用户读取指定数据库 |
readWrite |
允许用户读写指定数据库 |
dbAdmin |
允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin |
允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户 |
clusterAdmin |
只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
root |
只在admin数据库中可用。超级账号,超级权限 |
2. 创建管理员,
管理员通常没有数据库的读写权限,只有操作用户的权限, 因此我们只需要赋予管理员userAdminAnyDatabase角色即可。
另外管理员账户必须在admin数据库下创建,注:use命令在切换数据库时,如果切换到一个不存在的数据库,MongodDB会自动创建该数据库。
db.createUser({user:'bjsxt',pwd:'bjsxtpwd',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})
更新管理员角色
db.updateUser("bjsxt",{roles : [{"role" : "userAdminAnyDatabase","db" : "admin"},{"role" : "dbAdminAnyDatabase","db" : "admin"}]})
删除用户
db.dropUser('itsxt')
修改mongodb.conf配置文件,在文件中添加auth=true,开启权限认证。
3. 认证
db.auth('bjsxt','bjsxtpwd')
4. 创建普通用户并指定可用的权限
use sxt
db.createUser({user:'itsxt',pwd:'itsxtpwd',roles:[{role:'readWrite',db:'sxt'}]})
5. 创建集合
db.createCollection('dev')
删除集合
db.dev.drop()
6. 插入文档
db.dev.insert({title:'北京尚学堂',description:'程序员的摇篮',url:'www.bjsxt.com',tags:['java','大数据','python']})
覆盖更新文档
db.集合名称.update( <query>, <update>, < upsert:boolean>, < multi:boolean> ) 参数说明: query : update的查询条件,类似sql update查询内where后面的。 update : update的对象和一些更新的操作符等,也可以理解为sql update查询内set后面的。 upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入这个document,true为插入,默认是false,不插入。 multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
表达式更新
db.col.update( {'title':'MongoDB 教程'}, {$set:{'title':'MongoDB'}} )
7. 关系型数据库与MongoDB的对应关系