进阶-固定集合:
1. db.dropDatabase();删除当前数据库。db 还是当前数据库。Showdbs;已经不存在(虽然删除但是还存在当前数据库)
2. db.createCollection("c1");当前数据创建一个固定集合(表)。
Capped collection 固定集合:
特点:
1. 插入速度快
2. 按照插入顺序的查询速度极快
3. 插入最新数据时,淘汰最早的数据。
用法:
1. 存储日志信息
2. 缓存一些少量的文档
创建固定集合:
不像普通集合,固定集合需要显示创建使用createCollection创建。
db.c1.stats();查看集合
>db.c1.stats()
{
"ns" : "test.c1",--当前命名空间
"count" : 0,
"size" : 0,
"storageSize" : 8192,
"numExtents" : 1,
"nindexes" : 1,
"lastExtentSize" : 8192,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 1,
"totalIndexSize" : 8176,
"indexSizes" : {--索引使用情况
"_id_" : 8176
},
"ok" : 1
}
db.system.indexes.find();查看当前数据库的索引
db.createCollection("c2",{capped:true,size:10000000,max:5});创建c2固定集合capped:true;大小10k ,size:1000;max数据个数5多余5条则删除旧数据,max:5;
db.runCommand({convertToCapped:"c1",size:100000,max:3});普通集合转为固定集合---max:3不起作用,估计已经创建的不能转换吧。
db.c1.isCapped();判断c1集合是否是固定集合
db.c1.find().sort({$natural:-1})插入顺序的的倒叙排列
进阶-GridFS
GridFS是一种MongoDB中存储大二进制文件的机制。
使用GridFS的原因有以下几种:
1. 存储大文件,视频、高清图片
2. 利用GridFS简化需求
3. GridFS会直接利用已经建立的复制或分片机制,故障恢复和扩展容易。
4. 避免用户上传内容的文件系统出现问题
5. 不产生碎片
详细说明:
1. GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。
2. GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。
3. GridFS 可以更好的存储大于16M的文件。
4. GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被存储在chunks集合中。
5. GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。
6. 每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。
mongofiles.exe-d test put 22.mp3 ;bin目录下执行,上传22.mp3到test数据库。
db.fs.files.find()查看files文件
db.fs.chunks.find()查看chunks文件
db.fs.chunks.find({files_id:ObjectId('54c8934abfd8ea6ce85fa978')});查看数据