Если ваши изображения маленькие, вы можете сохранить их в виде двоичных данных в документах вашей коллекции. Просто учтите, что вы будете получать их каждый раз, когда будете запрашивать документ (если только вы не исключите поле «изображение» из ваших запросов).
Однако, если ваши изображения больше, я бы использовал GridFS. GridFS имеет некоторые функции, которые делают его очень хорошим в обработке изображений, которые вы должны учитывать:
- Для больших изображений, когда они хранятся в GridF, они будут разбиты на куски, и вы сможете хранить очень большие файлы. Если вы пытаетесь сохранить изображения в своем документе, вы ограничены максимальным размером документа в 16 МБ и занимает место, которое необходимо использовать для фактического документа.
- Вы можете добавлять метаданные к самому изображению и выполнять запросы к этим атрибутам, как если бы вы делали это из обычного документа в коллекции. Так что GridFS так же хорош, как документ для метаданных об изображении.
- Мне действительно нравится, что я получаю хэш MD5, рассчитанный на изображениях. (Это очень полезно для некоторых моих дел).
- Храня изображения в GridFS, вы сохраняете предварительную обработку изображения в двоичном формате (не большое дело, но удобство GridFS)
С точки зрения производительности чтение / запись на обычном документе не должно отличаться от работы на GridFS. Я бы не стал считать производительность отличительной чертой при выборе любого из них.
Моя личная рекомендация - использовать GridFS, но вам нужно проанализировать ее для конкретного случая использования.
Надеюсь, это поможет.