GridFS — это спецификация MongoDB, разработанная для хранения и получения файлов, превышающих лимит размера BSON-документа в 16 МБ. Вместо того чтобы сохранять файл как один документ, GridFS автоматически разбивает его на более мелкие части и управляет ими в двух специальных коллекциях.
GridFS делит файлы на чанки (размер по умолчанию: 255 КБ каждый) и распределяет их по двум коллекциям:
fs.files — хранит метаданные файла, такие как имя, дата загрузки, тип содержимого и общий размерfs.chunks — хранит фактические бинарные данные, где каждый чанк сохраняется как отдельный документ со ссылкой на родительский файлКогда файл запрашивается, MongoDB собирает чанки в правильном порядке, и этот процесс прозрачен для приложения.
// fs.files
{ _id, filename, length, chunkSize, uploadDate, contentType }
// fs.chunks
{ _id, files_id, n (индекс чанка), data (BinData) }
GridFS не всегда лучший выбор для маленьких файлов — если размер файлов постоянно менее 16 МБ, сохранение их как стандартных бинарных полей (BinData) в документе проще и эффективнее. GridFS раскрывает свои преимущества, когда на первый план выходят размер файла, потоковая передача или побайтовый доступ на уровне чанков.
GridFS автоматически разбивает файлы на chunks размером 255 КБ по умолчанию и сохраняет метаданные и бинарные данные в двух отдельных коллекциях с названиями fs.files и fs.chunks.
Новый — ещё не проверен сообществом
Вы