Latest web development tutorials

MongoDB GridFS

GridFS para el almacenamiento y la restauración de los mayores de 16 M (BSON límite de archivo) archivos (tales como: imágenes, audio, vídeo, etc.).

Una forma es GridFS almacenamiento de archivos, pero está en la colección se almacena en MonoDB.

GridFS mejor memoria que los documentos 16M.

GridFS apuntarán archivos de gran tamaño en (fragmento de archivo) pedazo más pequeño múltiple, típicamente 256 k /, uno para cada trozo como documento de MongoDB (documento) se almacena en la colección de bloques.

GridFS dos colecciones para almacenar un archivo: fs.files y fs.chunks.

El contenido real de cada archivo se almacena en trozos (datos binarios), los meta datos y documentos relativos a la (nombre de archivo, content_type, así como los atributos definidos por el usuario) que se almacenan en archivos de la colección.

La siguiente es una colección de documentos simples fs.files:

{
   "filename": "test.txt",
   "chunkSize": NumberInt(261120),
   "uploadDate": ISODate("2014-04-13T11:32:33.557Z"),
   "md5": "7b762939321e146569b07f72c62cca4f",
   "length": NumberInt(646)
}

La siguiente es una colección de documentos simples fs.chunks:

{
   "files_id": ObjectId("534a75d19f54bfec8a2fe44b"),
   "n": NumberInt(0),
   "data": "Mongo Binary Data"
}

GridFS Añadir Archivo

Ahora usamos las GridFS comando PUT para almacenar archivos mp3. Llame a MongoDB bin directorio de instalación de la herramienta mongofiles.exe.

Abra un símbolo del sistema, vaya al directorio de instalación al directorio bin MongoDB, localizar mongofiles.exe, e introduzca el código siguiente:

>mongofiles.exe -d gridfs put song.mp3

GridFS es el nombre del archivo de datos se almacena. Si no existe la base de datos, se creará automáticamente MongoDB. Song.mp3 es un nombre de archivo de audio.

Utilice los siguientes comandos para ver los documentos en el archivo de base de datos:

>db.fs.files.find()

Después de ejecutar el comando anterior devuelve los siguientes datos de documento:

{
   _id: ObjectId('534a811bf8b4aa4d33fdf94d'), 
   filename: "song.mp3", 
   chunkSize: 261120, 
   uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",
   length: 10401959 
}

Podemos ver todos los bloques fs.chunks conjunto, obtenemos el siguiente documento de valor _id, podemos obtener el bloque (trozo) de los datos de acuerdo con esta _id:

>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})

El ejemplo anterior, la consulta devuelve los datos 40 del documento, lo que significa que los archivos mp3 se almacenan en 40 bloques.