学习主题:MongoDb
学习目标:
1.掌握什么是mongodb?
2.掌握mongodb的配置安装
3.mongodb的用户创建和认证
4.mongodb更新用户删除用户
5.mongodb创建集合 查看删除集合
Linux软件安装-安装mongodb
在Linux系统中如何启动mongodb?
进入解压后的Mongodb目录中,创建data目录在data目录中创建db文件
Mkdir -p data/db 进入bin目录中有mongod服务
mongodb前置启动?
./mongod –dbpath /usr/local/mongodb/data/db/
mongodb后置启动?
创建log/mongodb.log日志文件
启动命令:
./mongod --dbpath /usr/local/mongodb/data/db/ --logpath /usr/local/mongodb/log/mongdb.log --fork
Mongodb中的数据类型有哪些?
ObjectID:文档id
String:字符串,必须是有效的UTF-8
Boolean:true/false
● Object ID: ⽂档ID
● String: 字符串, 最常⽤, 必须是有效的UTF-8
● Boolean: 存储⼀个布尔值, true或false
● Integer: 整数可以是32位或64位, 这取决于服务器
● Double: 存储浮点值
● Arrays: 数组或列表, 多个值存储到⼀个键
● Object: ⽤于嵌⼊式的⽂档, 即⼀个值为⼀个⽂档
● Null: 存储Null值
● Timestamp: 时间戳, 表示从1970-1-1到现在的总秒数
● Date: 存储当前⽇期或时间的UNIX时间格式
注意点
● 每个⽂档都有⼀个属性, 为_id, 保证每个⽂档的唯⼀性,mongodb默认使用_id作为主键
可以⾃⼰去设置_id插⼊⽂档,如果没有提供, 那么MongoDB为每个⽂档提供了⼀个独特的_id, 类型为objectID
● objectID是⼀个12字节的⼗六进制数,每个字节两位,一共是24 位的字符串: 前4个字节为当前时间戳 接下来3个字节的机器ID 接下来的2个字节中MongoDB的服务进程id 最后3个字节是简单的增量值
Mongodb的关闭方式?
使用ctrl+c关闭(基于前置启动的方式)
使用kill命令关闭
使用MongoDB函数关闭
db.shutdownService()
db.runCommand(“shutdown”)
使用mongod的命令关闭mongoDB
./mongod --shutdown --config /usr/local/mongodb/etc/mongodb.conf
Mongodb的权限介绍?
Mongodb创建用户的语法?
先创建数据库,再根据数据库创建用户
db.createUser({user:'itsxt',pwd:'itsxtpwd',roles:[{role:'readWrite',db:'sxt'}]})
Mongodb如何实现用户认证?
1. 在config文件中添加auth=true,并重启服务
2. 登录mongo客户端切换到admin用户
3. 使用函数db.auth(‘bjsxt’,’bjsxtpwd’)
4. 再次查询db.system.users.find()
Mongodb如何实现角色更新?有几种方式,区别是什么?
对未存在的用户进行角色更新,即创建新用户时,赋予权限
对存在的用户进行角色更新,使用db.updateUser()函数
db.updateUser("bjsxt",{roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"dbAdminAnyDatabase","db":"admin"}]})
注意,该函数需要当前用户具有userAdminDatabase或者更高的权限
Mongodb如何完成密码更新?
db.updateUser("bjsxt",{"pwd":"sxt"})
db.changeUserPassword("bjsxt","sxtpwd")
Mongodb如何删除用户,前提是什么?
db.dropUser(“itsxt”)
前提:切换到创建用户所指定的数据库和需要使用具有userAdminDatabase角色管理
Mongodb如何创建删除数据库?
Db.dropDatabase()
Mongodb如何创建集合,查看删除集合?
默认集合:向数据库中插入数据,自动创建集合,并且使用数据库的名字作为集合的名称
创建不带参数的集合db.createCollection(“dev”).显示集合show collections
创建带参数的集合db.createCollection("dev2",{capped:true,autoIndexId:true,size:2000000,max:1000})
删除集合 db.dev2.drop()
Mongo的文档操作?
插入文档分为哪几种,分别是什么?
插入单个文档函数
Insert({})
Save({})
insertOne({})
使用变量插入:变量=({}), insert(变量)
插入多个文档函数(inserth)
Insert([{},{}…])
Save([{},{}…])
insertMany([{},{}…])
使用变量插入:变量=([{},{}…]),insert(变量)