mongodb 操作笔记
user admin
创建超级管理员:db.createUser({user: "admin", pwd: "admin", roles: [{role: "root", db: "admin"}]})
切换库:use 库名
显示所有的数据库:show dbs
创建集合:db.createCollection("collection_name",{capped:true,size:8589934592}); //创建8个G固定大小的集合 8589934592b
显示所有的集合: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
db.getCollection('software_system_log').dataSize() //数据大小,byte
删除集合
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