> Что такое GridFS в MongoDB (JavaScript)

Уровень: junior · Роль: backend · Язык: JavaScript · Категория: Технические вопросы

Компании: ЭНИРАН

Стек: Node.js, JavaScript, MongoDB, Go

> Пример ответа

GridFS - это спецификация MongoDB для хранения и извлечения файлов, размер которых превышает лимит BSON-документа (16 МБ). Она разбивает файл на чанки (по умолчанию 255 КБ) и хранит их в двух коллекциях: fs.files (метаданные файла) и fs.chunks (бинарные данные). В контексте frontend-разработки на JavaScript с Node.js это полезно для загрузки больших файлов (например, видео или архивов) напрямую в MongoDB, минуя ограничения HTTP-запросов. Пример использования с драйвером Mongoose:

JAVASCRIPT
const mongoose = require('mongoose');
const Grid = require('gridfs-stream');
const conn = mongoose.connection;
let gfs;
conn.once('open', () => {
gfs = Grid(conn.db, mongoose.mongo);
});
// Загрузка файла
const writestream = gfs.createWriteStream({ filename: 'video.mp4' });
fs.createReadStream('./video.mp4').pipe(writestream);
// Чтение файла
const readstream = gfs.createReadStream({ filename: 'video.mp4' });
readstream.pipe(response); // отправка клиенту

GridFS удобен для хранения файлов в распределённой системе, но для простых сценариев (маленькие файлы) лучше использовать прямую вставку в BSON или внешние хранилища (S3).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью