Mongodb——GridFS
来源:互联网 发布:朱丹 知乎 编辑:程序博客网 时间:2024/06/05 09:03
GridFS用于存储和恢复那些超过16M(BSON文件限制)的文件。
GridFS将文件分成大块,将每个大块存储为单独的文件.GridFS中限制chunk最大为256k。GridFS使用两个collection存储,一个存储chunks,一个存储元数据(metadata)。
fs.files和fs.chunks
When should I use GridFS?
http://docs.mongodb.org/manual/faq/developers/#faq-developers-when-to-use-gridfs
file Collection:具体形式如下
{
"_id" : <ObjectID>,
"length" : <num>,
"chunkSize" : <num>
"uploadDate" : <timestamp>
"md5" : <hash>
"filename" : <string>,
"contentType" : <string>,
"aliases" : <string array>,
"metadata" : <dataObject>,
}
Documents in the files collection contain some or all of the following fields. Applications may create additional arbitrary fields:
files._id
The unique ID for this document. The _id is of the data type you chose for the original document. The default type for MongoDB documents is BSON ObjectID.
files.length
The size of the document in bytes.
files.chunkSize
The size of each chunk. GridFS divides the document into chunks of the size specified here. The default size is 256 kilobytes.
files.uploadDate
The date the document was first stored by GridFS. This value has the Date type.
files.md5
An MD5 hash returned from the filemd5 API. This value has the String type.
files.filename
Optional. A human-readable name for the document.
files.contentType
Optional. A valid MIME type for the document.
files.aliases
Optional. An array of alias strings.
files.metadata
Optional. Any additional information you want to store.
The chunks Collection:举例如下
{
"_id" : <string>,
"files_id" : <string>,
"n" : <num>,
"data" : <binary>
}
A document from the chunks collection contains the following fields:
chunks._id
The unique ObjectID of the chunk.
chunks.files_id
The _id of the “parent” document, as specified in the files collection.
chunks.n
The sequence number of the chunk. GridFS numbers all chunks, starting with 0.
chunks.data
The chunk’s payload as a BSON binary type.
GridFS Index
GridFS使用chunks中files_id和n域作为混合索引,files_id是父文档的_id,n域包含chunk的序列号,该值从0开始。
GridFS索引支持快速恢复数据。
cursor = db.fs.chunks.find({files_id: myFileID}).sort({n:1});
如果没有建立索引,可以使用下列shell命令:
db.fs.chunks.ensureIndex( { files_id: 1, n: 1 }, { unique: true } );
Example Interface:
// returns default GridFS bucket (i.e. "fs" collection)
GridFS myFS = new GridFS(myDatabase);
// saves the file to "fs" GridFS bucket
myFS.createFile(new File("/tmp/largething.mpg"));
接口支持额外的GridFS buckets
// returns GridFS bucket named "contracts"
GridFS myContracts = new GridFS(myDatabase, "contracts");
// retrieve GridFS object "smithco"
GridFSDBFile file = myContracts.findOne("smithco");
// saves the GridFS file to the file system
file.writeTo(new File("/tmp/smithco.pdf"));
- Mongodb——GridFS
- MongoDB——GridFS
- MongoDB——GridFS使用
- mongoDB——GridFS存储机制
- MongoDB分布式存储——GridFS
- mongoDB——GridFS存储机制
- MongoDB应用——GridFS存储文件
- mongoDB——GridFS存储机制
- MongoDB(八)Mongodb——GridFS存储
- Nosql Mongodb之旅(11)—MongoDB GridFS
- mongodb——java封装(id自增,gridFS)
- mongodb——java封装(id自增,gridFS)
- mongoDB应用篇——固定集合和GridFS文件
- MongoDB学习(三)——mongofiles实现GridFS
- MongoDB---GridFS
- MongoDB GridFS
- MongoDB GridFS
- mongodb GridFS
- 题目1055:数组逆置
- 如何写Makefile文件
- makefile(摘自linux_c编程一站式学习)
- MongoDB—— 读操作 Core MongoDB Operations (CRUD)
- MongoDB—— 写操作 Core MongoDB Operations (CRUD)
- Mongodb——GridFS
- URL中 & 、 ? 、 # 的作用
- 2013/07/11 中科院软件所就业讲座总结
- mongodb python image 图像存储读取
- Mysql BLOB和TEXT类型
- mysql python image
- MySQL Python教程(1)
- MySQL Python教程(2)
- MySQL Python教程(3)