MongoDB入门(二)
1. 用户操作
不同数据库拥有的角色不同
(1)数据库用户角色:read、readWrite;
(2)数据库管理角色:dbAdmin、dbOwner、userAdmin;
(3)集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
(4)备份恢复角色:backup、restore;
(5)所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase
(6)超级用户角色:root
1.1 创建用户
查看用户
show users
查看角色
show roles
创建用户
给php数据库创建角色为dbOwner的用户
db.createUser({ user:'test', pwd:'123456', roles:[{role:'dbOwner',db:'php'}] })
1.2 开启用户认证
bin/mongod.cfg
security:
authorization: enabled
重启mongodb即可
用户名密码登录
mongosh php -u test -p 123456
用户账号密码登录后认证
db.auth('test', '123456')
1.3 用户删除
db.dropUser('test')
1.4 修改密码
db.updateUser('test', {pwd:'123456'})
2. 索引
2.1 测试
插入数据
for(var i=0; i<=2000000; i++){ db.test.insertOne({name:'zs' + i, age:i, sex: i})
}
查询
var s = new Date
db.test.find({name:'zs2000000'})
var e = new Date
e - s
# 耗时
1020
2.2 创建索引
2.2.1 普通索引
1为升序,-1倒序
db.test.ensureIndex({name: 1})
再次查询
var s = new Date
db.test.find({name:'zs2000000'})
var e = new Date
e - s
# 耗时
34
2.2.2 多列索引
db.test.ensureIndex({name:1, age:1})
2.2.3 子文档索引
db.test.insert({name: {son:'ls'}})
db.test.ensureIndex({'name.son':1})
2.2.4 唯一索引
db.test.ensureIndex({name:1}, {unique:true})
2.3 查看索引
db.test.getIndexes()
执行计划
db.test.find().explain()
2.4 删除索引
删除单个
db.test.dropIndex({name:1})
删除所有
db.test.dropIndexes()
2.5 重建索引
类似mysql中的optimize table
db.test.reIndex()
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: