2011-10-18 19 views

Respuesta

19

Si sus imágenes son pequeñas, puede almacenarlas como datos binarios en los documentos de su colección. Simplemente considere que los va a recuperar cada vez que consulte su documento (a menos que excluya el campo 'imagen' de sus consultas).

Sin embargo, si sus imágenes son más grandes, utilizaría GridFS. GridFS tiene algunas características que lo hacen muy bueno en el manejo de imágenes que usted debe considerar:

  • Para las imágenes más grandes, cuando se almacenan en GridFS que se dividirá en trozos y se pueden almacenar archivos muy grandes. Si intenta almacenar imágenes en su documento, está limitado por el tamaño máximo de 16 Mb de un documento, y está consumiendo espacio que debe ser utilizado para su documento real.
  • Puede agregar metadatos a la imagen en sí y ejecutar consultas en contra de estos atributos, como si lo estuviera haciendo desde un documento normal en una colección. Entonces GridFS es tan bueno como un documento para metadatos sobre la imagen.
  • Me gusta mucho que obtenga hash MD5 calculado en las imágenes. (Es muy útil para algunos de mis casos).
  • Mediante el almacenamiento de imágenes en GridFS que se ahorrará el pre-procesamiento de la imagen en formato binario (no es un gran problema, sino una conveniencia de GridFS)

En términos de rendimiento, la lectura/escritura en contra de un documento normal debe no es diferente a hacerlo contra GridFS. No consideraría el rendimiento como un diferenciador al elegir cualquiera de los dos.

Mi recomendación personal es ir con GridFS, pero debe analizarlo para su caso de uso particular.

Espero que esto ayude.

3

Uso GridFS para almacenar fotos y documentos. Es muy fácil y es fácil recuperarlo de la colección para mostrarlo o guardarlo localmente. Puede almacenar metadatos junto con los datos binarios dentro de la misma colección. De esta manera, no es necesario crear una colección adicional para almacenarlos.

Por ejemplo, en uno de mis proyectos almaceno fotos de perfil de usuario junto con nombres de usuario, tipo de archivo y fecha de carga.

+0

@luckytaxi helicóptero, "0 deposito voto \t utilizo GridFS para almacenar fotos y documentos. Es tan fácil y recuperándolo de la colección para visualizar o guardar localmente es fácil." ¿Puedes explicar cómo cargas imágenes, recuperas y muestras localmente? –

+1

Cualquier ejemplo de esto por casualidad, en realidad estoy tratando de hacer esto exactamente para fotos de perfil de usuario – Lion789

Cuestiones relacionadas