Latest web development tutorials

MongoDB GridFS

GridFS für die Speicherung und den über 16 Millionen (BSON Dateigrenze) Dateien (wie zB: Bilder, Audio, Video, etc.) wieder her.

Eine Möglichkeit ist, GridFS Dateispeicher, aber es ist in der Sammlung in MonoDB gespeichert ist.

GridFS besseres Gedächtnis als 16 Millionen Dokumente.

GridFS werden große Dateien in mehrere kleinere Brocken (Datei-Fragment) Ziel, in der Regel 256k /, eine für jedes Stück als ein Dokument von MongoDB (Dokument) in der Brocken Sammlung gespeichert.

GridFS zwei Sammlung, eine Datei zu speichern: fs.files und fs.chunks.

Der eigentliche Inhalt jeder Datei wird in Blöcken (binäre Daten), die Metadaten und Dokumente an die im Zusammenhang gespeichert (Dateiname, content_type sowie benutzerdefinierte Attribute) wird es in Dateien in der Sammlung gespeichert werden.

Nachfolgend finden Sie eine Sammlung von einfachen fs.files Dokumente:

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

Nachfolgend finden Sie eine Sammlung von einfachen fs.chunks Dokumente:

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

GridFS Datei hinzufügen

Jetzt nutzen wir die Put-Befehl GridFS MP3-Dateien zu speichern. Rufen Sie MongoDB Installationsverzeichnis bin von mongofiles.exe Werkzeug.

Öffnen Sie eine Eingabeaufforderung in das Verzeichnis bin MongoDB-Installationsverzeichnis, suchen mongofiles.exe, und geben Sie den folgenden Code:

>mongofiles.exe -d gridfs put song.mp3

GridFS ist der Name der Datendatei gespeichert ist. Wenn die Datenbank nicht vorhanden ist, wird MongoDB automatisch erstellt. Song.mp3 ist ein Audio-Dateinamen.

Verwenden Sie die folgenden Befehle Dokumente in der Datenbank-Datei anzuzeigen:

>db.fs.files.find()

Nach den obigen Befehl ausführen, wird die folgende Dokumentdaten:

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

Wir können alle Blöcke fs.chunks Set sehen wir die folgenden _id Wertdokument zu erhalten, können wir den Block (Brocken) von Daten in Übereinstimmung mit dieser _id erhalten:

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

Das obige Beispiel gibt die Abfrage die Daten 40 des Dokuments, das bedeutet, dass MP3-Dateien in 40 Blöcke gespeichert sind.