Файл загрузки WiredTiger, GridFS и Mongodb и максимальный размер файла

Три вопроса о хранилище WiredTiger и MongoDB.

  1. Мне нужно хранить (двоичные) файлы в БД, размер которых может превышать 16 МБ, теперь я прочитал на сайте WiredTiger, что максимальный размер файла составляет 512 МБ, но на Mongodb insert говорит, что максимальный размер всех документов должен быть 16 МБ, поэтому я смогу хранить файлы, которые больше 16 МБ при использовании WiredTiger?

  2. Мне нужно использовать файл целиком, а не его части (например, потоковая передача частей видео), возможно ли это с GridFS?

  3. Как я могу вставить и найти файлы в БД? Я не могу найти руководство, как это сделать с WiredTiger ...

    Надо ли это делать из mongoshell или mongofiles? Есть ли способ сделать это программно с помощью node.js?


person shinzou    schedule 05.12.2016    source источник


Ответы (1)


1) GridFS следует использовать для файлов размером более 16 МБ: GridFS - это спецификация для хранения и извлечения файлов, размер которых превышает лимит BSON-документа в 16 МБ.

РЕДАКТИРОВАТЬ: проверьте этот ответ на предмет ограничений GridFS.

2) При запросе вставки GridFS разделяет файл на части. Когда вы запрашиваете файл в GridFS, драйвер при необходимости повторно собирает фрагменты.

3) Запросы к GridFS с помощью WiredTiger или другого механизма (MMAPv1) прозрачны для пользователя. Файлы можно запрашивать с помощью методов драйвера, здесь .

person sergiuz    schedule 05.12.2016
comment
В примере API для GridFS они используют поток для файла. Могу ли я с уверенностью предположить, что он отправляет полностью собранный файл, а не его части? - person shinzou; 05.12.2016
comment
Конечно, да, драйвер делает это прозрачно для вас. - person sergiuz; 05.12.2016
comment
Где ты нашел документ, подтверждающий, что файлы размером менее 16 Мб нельзя хранить на gridfs ?? Говорят, что если размер ваших файлов превышает 16 Мб, вам СЛЕДУЕТ использовать gridfs! но за меньшую сумму у вас ЕСТЬ возможность использовать коллекции! - person Mohsen ZareZardeyni; 16.09.2017