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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!