MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come eseguire operazioni di aggiornamento in GridFS (usando Java)?

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 è:

  1. inserisci un nuovo file con un nuovo nome
  2. dopo che ciò è accaduto (usa la replica riconosciuta write-concern), aggiorna tutti i riferimenti al vecchio file in modo che puntino a quello nuovo
  3. 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.