数据库类型
- adimn数据库:一个权限数据库,如果创建用户的时候将用户添加到admin数据库中,那么该用户就自动继承了所有数据库的权限。
- local数据库:这个数据库永远不会被负责,可以用来存储本地单台服务器的任意集合。
- config数据库:当MongoDB使用分片模式时,config数据库在内部使用,用于保存分片的信息。
- test数据库:MongoDB安装后的默认数据库,可以用于数据库命令的各种操作,包括测试。
- 自定义数据库:根据应用系统需要建立的业务数据库。
创建自定义数据库
语法:use 数据库名
如果mytest数据库不存在,则新建数据库;如果mytest数据库存在,则连接该数据库,然后可以在该数据库上做各种命令操作。
查看数据库
语法:show dbs
对于刚刚建立的mytest数据库并没有显示出来,原因是mytest数据库里没有内容。若mytest数据库里有数据了,则会在上述命令结果上增加一列。
统计当前数据库信息
语法:db.stats()
{
"db" : "mytest", //数据库名
"collections" : 0, //集合数量
"views" : 0,
"objects" : 0, // 文档对象个数,所有集合的记录总和
"avgObjSize" : 0, //平均每个对象的大小,dataSize/objects
"dataSize" : 0, //当前数据库所有集合的数据大小
"storageSize" : 0, //磁盘存储大小
"totalSize" : 0,
"indexes" : 0, //已建立索引数量
"indexSize" : 0, //索引大小
"scaleFactor" : 1,
"fileSize" : 0,
"fsUsedSize" : 0,
"fsTotalSize" : 0,
"ok" : 1
}
删除当前数据库
语法:db.dropDatabase()
生产环境下,慎重使用,执行该命令后对应的数据库文件就消失了,一般具有不可恢复性。
查看当前数据库下的所有集合名称
语法:db.getCollctionNames()
查看当前数据库角色权限
语法:show roles
> use test
switched to db test
> show roles
{
"role" : "dbAdmin", //数据库管理角色,执行数据库管理相关操作功能
"db" : "test",
"isBuiltin" : true, //内置角色
"roles" : [ ], //放置用户角色,权限等信息
"inheritedRoles" : [ ]
}
{
"role" : "dbOwner", //提供数据库任何管理操作功能,此角色集合了readWrite、dbAdminhe、userAdmin角色赋予的权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "enableSharding", //提供分片操作权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "read", //主要提供自定义业务数据库读权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "readWrite", //主要提供自定义数据库读写权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "userAdmin", //提供在当前数据库上创建和修改角色和用户的功能,由于该角色允许操作员向任何用户授予任何权限,该角色还间接地提供对数据库的超级用户root的访问权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}