In GridFS non stai rimuovendo/cancellando un singolo documento ma in realtà un gruppo di documenti (i file sono divisi in blocchi e ogni blocco è un documento separato). Ciò significa semplicemente che non è possibile sostituire un file in modo atomico.
Quello che puoi fare invece è:
- inserisci un nuovo file con un nuovo nome
- dopo che ciò è accaduto (usa la replica riconosciuta write-concern), aggiorna tutti i riferimenti al vecchio file in modo che puntino a quello nuovo
- Dopo aver ricevuto una conferma, puoi eliminare il vecchio file
GridFS è una specie di funzionalità hacker. Spesso è meglio utilizzare un file server separato con un filesystem reale per archiviare il contenuto del file e archiviare solo i metadati in MongoDB.