MongoDB GridFS 文件存储
学习使用 GridFS 存储和检索超过 16MB 的大文件。 · 难度:入门 · +15XP
什么是 GridFS?
GridFS 是 MongoDB 的规范,用于存储和检索超过 BSON 文档大小限制(16MB)的文件。它将文件分成多个 chunk(默认 255KB),并存储在两个集合中:fs.files 和 fs.chunks。
上传文件
const bucket = new GridFSBucket(db, { bucketName: 'uploads' });
const fs = require('fs');
const readStream = fs.createReadStream('./largefile.zip');
const uploadStream = bucket.openUploadStream('largefile.zip');
readStream.pipe(uploadStream);下载文件
const downloadStream = bucket.openDownloadStreamByName('largefile.zip');
downloadStream.pipe(fs.createWriteStream('./downloaded.zip'));| 集合 | 字段示例 |
|---|---|
| fs.files | _id, length, chunkSize, uploadDate, filename |
| fs.chunks | _id, files_id, n, data (Binary) |
练习提示
上传一张大于 16MB 的图片或视频到 GridFS,然后通过文件名下载到本地。使用 Mongoose 的 GridFS 插件或原生驱动。