MongoDB Cappad collection 、GridFS

进阶-固定集合:

 

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.filesfs.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')});查看数据

 

你可能感兴趣的:(MongoDB Cappad collection 、GridFS)