GridFS n'est pas une fonctionnalité essentielle de MongoDB mais une convention de stockage de données binaires avec les métadonnées associées. Vous devriez pouvoir modifier n'importe quel document dans fs.chunks
collecte de manière habituelle tout en conservant le document correspondant dans fs.files
intact. Le principal problème sera de recalculer la somme de contrôle MD5, mais AFAIK, il n'est utilisé nulle part et n'est qu'un bonus "gratuit". Quoi qu'il en soit, il est toujours possible de modifier uniquement par ajout (voir le résumé MD5 d'un téléchargement repris).
Donc, pour ajouter à un fichier GridFS existant, vous devez localiser le document correspondant dans fs.files
. Ensuite, en fonction du taux de remplissage du dernier morceau (length
% chunkSize
==0) soit vous réécrivez le dernier morceau de document dans fs.chunks
en respectant le chunkSize
, et/ou simplement ajouter de nouveaux morceaux en incrémentant n
domaine. Prochaine mise à jour length
dans fs.files
et éventuellement d'autres métadonnées.