Tutoriel MongoD...login
Tutoriel MongoDB
auteur:php.cn  temps de mise à jour:2022-04-21 17:49:03

MongoDB GridFS


GridFS est utilisé pour stocker et restaurer des fichiers (tels que des images, des audios, des vidéos, etc.) qui dépassent 16 Mo (limite de fichiers BSON).

GridFS est également un moyen de stockage de fichiers, mais il est stocké dans une collection MonoDB.

GridFS peut mieux stocker des fichiers de plus de 16 Mo.

GridFS divisera les objets fichier volumineux en plusieurs petits morceaux (fragments de fichiers), généralement 256 000 /pièce, chaque morceau sera stocké dans la collection de morceaux en tant que document dans MongoDB.


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

Le contenu réel de chaque fichier est stocké en morceaux (données binaires) et les métadonnées liées au fichier (nom de fichier, type de contenu et attributs définis par l'utilisateur) seront stockées dans la collection de fichiers.

Ce qui suit est un simple document de collection fs.files :

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

Ce qui suit est un simple document de collection fs.chunks :

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

GridFS Add Files

Nous utilisons maintenant la commande put de GridFS pour stocker les fichiers mp3. Appelez l'outil mongofiles.exe dans la corbeille du répertoire d'installation de MongoDB.

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

>mongofiles.exe -d gridfs put song.mp3

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


Utilisez la commande suivante pour afficher les documents du fichier dans la base de données :

>db.fs.files.find()

Une fois la commande ci-dessus exécutée, les données du document suivantes seront renvoyé :

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

us Vous pouvez voir tous les morceaux de la collection fs.chunks. Ci-dessous, nous obtenons la valeur _id du fichier. Nous pouvons obtenir les données du morceau basées sur ce _id :

>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})
<🎜. > Dans l'exemple ci-dessus, les données de requête pour 40 documents ont été renvoyées, ce qui signifie que les fichiers mp3 ont été stockés en 40 morceaux.