Latest web development tutorials

MongoDB GridFS

GridFS pour le stockage et la restauration de ceux de plus de 16M (limite de fichier BSON) fichiers (par exemple: images, audio, vidéo, etc.).

Une façon est le stockage de fichiers GridFS, mais il est dans la collection est stockée dans MonoDB.

GridFS meilleure mémoire que les documents de 16M.

GridFS cibleront gros fichiers en petits morceau (fragment de fichier) multiple, typiquement 256k /, un pour chaque morceau comme document de MongoDB (document) est stocké dans la collection de morceaux.

GridFS deux collection pour stocker un fichier: fs.files et fs.chunks.

Le contenu réel de chaque fichier est stocké dans des morceaux (données binaires), les méta-données et les documents relatifs à la (nom de fichier, content_type, ainsi que des attributs définis par l'utilisateur), il sera stocké dans les fichiers de la collection.

Ce qui suit est une collection de documents de fs.files simples:

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

Ce qui suit est une collection de documents de fs.chunks simples:

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

GridFS Ajouter fichier

Maintenant, nous utilisons les GridFS de commande de vente pour stocker des fichiers mp3. Appelez MongoDB répertoire d'installation de l'outil bin mongofiles.exe.

Ouvrez une invite de commande, accédez au répertoire d'installation de MongoDB répertoire bin, recherchez mongofiles.exe, et entrez le code suivant:

>mongofiles.exe -d gridfs put song.mp3

GridFS est le nom du fichier de données est stockée. Si la base de données n'existe pas, MongoDB sera automatiquement créé. Song.mp3 est un nom de fichier audio.

Utilisez les commandes suivantes pour afficher les documents dans le fichier de base de données:

>db.fs.files.find()

Après l'exécution de la commande ci-dessus renvoie les données du document suivant:

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

Nous pouvons voir tous ensemble fs.chunks les blocs, nous obtenons le document de valeur _id suivante, nous pouvons obtenir le bloc (bloc) de données conformément à la présente _id:

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

L'exemple ci-dessus, la requête renvoie les données 40 du document, ce qui signifie que les fichiers mp3 sont stockés dans 40 blocs.