2016-09-28 3 views
0

Я создаю RESTful API с узлом, выражением и mongodb, а книга, которую я использую в качестве ссылки, рекомендует использовать GridFS (а именно gridfs-stream) для случаев, когда нужно обрабатывать файлы, большие, чем обрезание MongoDB (16MB)Есть ли недостатки в использовании GridFS по умолчанию с MongoDB?

Я не уверен, что когда-либо мне понадобится приложение, чтобы обрабатывать файлы такого размера, но мне интересно, есть ли какие-либо недостатки в его использовании в случае, если мне может понадобиться эта функция позже.

Есть ли какие-либо недостатки (т. Е. Существенные ненужные штрафы за производительность, проблемы со стабильностью), о которых я должен знать, чтобы помочь принять это решение?

Я также открыт для предложений по альтернативным решениям управления файлами, которые у вас могут быть.

Спасибо!

ответ

1

не использует Gridfs для небольших двоичных данных GridFS требует два запроса: один для извлечения метаданных файла и один для извлечения его содержимого Поэтому, если вы используете GridFS для хранения мелких файлов, вы удвоением числа запросов, ваше приложение должно сделать. GridFS - это в основном способ разбивки больших двоичных объектов для хранения в базе данных. GridFS предназначен для хранения больших данных - больше, чем в одном документе. Как правило, наилучшей практикой все, что слишком велико, чтобы загрузить все сразу на клиенте, вероятно, не то, что вы хотите загрузить сразу на сервер. Поэтому все, что вы собираетесь делать с потоком до клиента, является хорошим кандидатом для GridFS. Вещи, которые будут загружены все сразу на клиенте, такие как изображения, звуки, или даже небольшие видео клипы, как правило, должны просто быть встроены в основном документе

Кроме того, если ваши файлы все меньше размера 16 МБ Ограничение размера документа BSON, подумайте о сохранении файла вручную в одном документе вместо использования GridFS. Вы можете использовать тип данных BinData для хранения двоичных данных. Подробнее об использовании BinData см. В документации для ваших драйверов.

см https://docs.mongodb.com/manual/core/gridfs/

отметьте, пожалуйста правильно, если это помогло