GridFS non è una caratteristica fondamentale di MongoDB ma una convenzione per la memorizzazione di dati binari con metadati di accompagnamento. Dovresti essere in grado di modificare qualsiasi documento in fs.chunks
raccolta in modo normale mantenendo il documento corrispondente in fs.files
intatto. Il problema principale sarà ricalcolare il checksum MD5, ma AFAIK non viene utilizzato da nessuna parte ed è solo un bonus "gratuito". In ogni caso è ancora possibile la modifica di sola aggiunta (vedi MD5 digest di un download ripreso).
Quindi, per aggiungere un file GridFS esistente, devi individuare il documento corrispondente in fs.files
. Quindi, a seconda del rapporto di riempimento dell'ultimo pezzo (length
% chunkSize
==0) puoi riscrivere l'ultimo documento chunk in fs.chunks
rispettando il chunkSize
, e/o semplicemente aggiungi nuovi blocchi con l'incremento di n
campo. Prossimo aggiornamento length
in fs.files
ed eventualmente altri metadati.