Мне было интересно, что лучше/быстрее:
- Наличие отдельного набора документов, которые содержат только изображение, сохраненное как двоичные данные, и, возможно, некоторые метаданные.
- Или используя GridFS для хранения изображений.
Мне было интересно, что лучше/быстрее:
Если ваши изображения малы, вы можете сохранить их в виде двоичных данных в документах в своей коллекции. Просто подумайте, что вы будете получать их каждый раз, когда вы запрашиваете свой документ (если вы не исключаете поле "изображение" из ваших запросов).
Однако, если ваши изображения больше, я бы использовал GridFS. В GridFS есть некоторые функции, которые очень хорошо справляются с обращением с изображениями, которые вы должны учитывать:
С точки зрения производительности, чтение/запись на обычный документ не должно отличаться от того, как делать это с GridFS. Я бы не рассматривал производительность как отличительный элемент при выборе одного из них.
Моя личная рекомендация - пойти с GridFS, но вам нужно проанализировать для вашего конкретного случая использования.
Надеюсь, что это поможет.
Я использую GridFS для хранения фотографий и документов. Это так просто и получить его из коллекции для отображения или сохранения на месте легко. Вы можете хранить метаданные вдоль двоичных данных внутри одной коллекции. Таким образом, вам не нужно создавать дополнительную коллекцию для их хранения.
Например, в одном из моих проектов я храню фотографии профиля пользователя вместе с именами пользователей, типом файла и датой загрузки.
GridFS разработан для эффективного управления файлами. http://www.mongodb.org/display/DOCS/When+to+use+GridFS
Не забывайте, что вам, возможно, придется перевести данные в файл и обратно.
Но, конечно, выполните тест производительности, который учитывает ваш шаблон использования.
Я написал сообщение в блоге, которое охватывает компромиссы хранения двоичных данных в MongoDB и использования GridFS. См.: https://alexmarquardt.com/2017/03/02/trade-offs-to-consider-when-storing-binary-data-in-mongodb/
Отказ от ответственности: я сотрудник MongoDB.