MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Daten an vorhandene gridfs-Datei anhängen

GridFS ist keine Kernfunktion von MongoDB, sondern eine Konvention zum Speichern von Binärdaten mit begleitenden Metadaten. Sie sollten in der Lage sein, jedes Dokument in fs.chunks zu ändern Sammlung auf übliche Weise, während das entsprechende Dokument in fs.files aufbewahrt wird intakt. Das Hauptproblem wird die Neuberechnung der MD5-Prüfsumme sein, aber AFAIK wird sie nirgendwo verwendet und ist nur ein "kostenloser" Bonus. Auf jeden Fall ist es immer noch möglich, nur Änderungen anzuhängen (siehe MD5-Auszug eines fortgesetzten Downloads).

Um also an eine vorhandene GridFS-Datei anzuhängen, müssen Sie das entsprechende Dokument in fs.files suchen . Dann je nach Füllungsgrad des letzten Stücks (length % chunkSize ==0) schreiben Sie entweder das letzte Chunk-Dokument in fs.chunks neu unter Berücksichtigung der chunkSize , und/oder fügen Sie einfach neue Chunks hinzu, indem Sie n inkrementieren Feld. Als nächstes aktualisieren Sie length in fs.files und möglicherweise andere Metadaten.