mongodb 操作笔记

user admin

创建超级管理员:db.createUser({user: "admin", pwd: "admin", roles: [{role: "root", db: "admin"}]})

切换库:use 库名

显示所有的数据库:show dbs

创建集合:db.createCollection("collection_name",{capped:true,size:8388608});  //创建8个G固定大小的集合 8388608kb

显示所有的集合:show collections

创建用户授权:db.createUser({user:"username",pwd:"password",roles:[{role:"dbOwner",db:"库名"}]})

给其他库创建用户,需要先切换值admin库,认证后在切换到对应的库创建

认证:db.auth("username","password")

查看集合数量:db.getCollection(name).find({}).count()

查看集合大小:

  db.getCollection('name').stats().size

  db.getCollection('name').stats().size/1024

  db.getCollection('name').stats().size/1024/1024 

删除集合

use mydb //使用mydb
db.mycollection.remove({"id":"bar"}) //删除一条数据
db.mycollection.remove() //删除mycollection中的所有记录,但是mycollection还存在
db.mycollection.drop() //删除mycollection(show collection已经看不到foomycollection)但是查看数据文件发现大小不变,Mongodb不会自动释放文件空间
db.repairDatabase() //执行这个命令后,Mongodb会把不需要的空间释放出来

问题记录:

mongo 默认单个数据不能超过16MB

其他说明

数据库用户角色(Database User Roles):

read:授予User只读数据的权限
readWrite:授予User读写数据的权限
数据库管理角色(Database Administration Roles):

dbAdmin:在当前dB中执行管理操作
dbOwner:在当前DB中执行任意操作
userAdmin:在当前DB中管理User
备份和还原角色(Backup and Restoration Roles):

backup
restore
跨库角色(All-Database Roles):

readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理User的权限
dbAdminAnyDatabase:授予管理所有数据库的权限
集群管理角色(Cluster Administration Roles):

clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
hostManager:管理Server