Mongodb08 - 固定集合、GridFS、用户管理
1、固定集合
(01)、所谓的固定集合指的是规定集合大小,如果要保存的内容已经超过了集合的长度,那么采用LRU的算法(最少使用原则)将最早
的数据移除,从而保存新的数据;
(02)、默认情况下一个集合可以使用createCollection(函数创建),或者使用增加数据自动创建,但是如果想要使用固定集合,
就必须明确的创建一个空集合。
(03)、范例:创建一个空集合(固定集合)=>
db.createCollection("depts": true, "size": 1024,"max":5);
其中“capped :true”表示为一个固定集合,而“size:1024”指的是集合所占的空间容量(字节)、“max”:5最多能放5条,
多余的数据会自动清除。
2、GridFS
(01)、在MongoDB里面支持大数据的存储(例如:图片、音乐、各种二进制数据),但是这个方法需要用户自己进行处理,
MongoDB提供了“mongofiles”命令完成
1、利用命令行进入到文件所在的路径下
2、将文件保存到文件库中:mongofiles --port=27001 put photo.png
此时会想数据库里面写入要保存的二进制数据;
3、查看保存的文件 mongofiles --port=27001 list
4、在MongoDB里面有一个fs系统集合,这个集合默认保存在了test数据库下;
use test;
db.fs.files.find();
5、删除文件
mongofiles --port=27001 delete phote.png
等于在mongoDB里面支持二进制数据的保存,但是存在的意义不大。
3、用户管理
(01)、在MongoDB里面默认情况下只要是进行连接都可以不使用用户与密码,因为要想让其起作用,则必须具备以下两个条件:
|- 条件一:服务器启动的时候打开授权认证
|- 条件二:需要配置用户名和密码。
但是需要明确的是,如果想配置用户名和密码一定是针对于一个数据库的,例如现在要创建的是mldn数据库的用户,
那么必须切换到mldn数据库上。
use mldn
(02)、范例:执行用户的创建(hello、java) => db.createUser({"user": "hellp", "pwd":"java", "roles": [{"role": "readWrite", "db":"mldn"}]});
任何的用户都必须具备一个自己的操作角色,对于角色最基础的角色:read、readWrite。
(03)、创建了hello用户,那么如果要想让此用户名起作用,则必须以授权的方式打开MongoDB的服务,修改MongoDB的启动文件
#设置数据目录的路径 dbpath = D:\Mongodb\data #设置日志信息的文件路径 logpath = D:\Mongodb\log\mongodb.log #打开日志输出操作 logappend = true #在以后进行用户管理的时候使用它, auth:准许授权操作 noauth = true port = 27001
此时增加了一个验证的启动模式,发现依然可以在不输入用户和密码的前提下进行登录,并且也可以直接进行数据库的切换操作。
但是在使用数据库集合的时候出现了错误提示。
范例:登录数据库的时候使用用户名和密码 => mongo localhost:27001/mldn -u hello -p java
此时就表示成功的实现了用户的登录操作。
范例:修改密码 => db.changeUserPassword("hello","happy");
如果要修改密码,那么久请关闭授权登录。