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 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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