MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como realizar operações de atualização no GridFS (usando Java)?


No GridFS você não está removendo/excluindo um único documento, mas na verdade um monte de documentos (os arquivos são divididos em partes e cada parte é um documento separado). Isso significa que substituir um arquivo simplesmente não é possível de maneira atômica.

O que você pode fazer em vez disso é:
  1. insira um novo arquivo com um novo nome
  2. depois que isso aconteceu (use a réplica reconhecida write-concern), atualize todas as referências ao arquivo antigo para apontar para o novo
  3. depois de receber uma confirmação para isso, você pode excluir o arquivo antigo

GridFS é uma espécie de recurso hackish. Muitas vezes, é melhor usar um servidor de arquivos separado com um sistema de arquivos real para armazenar o conteúdo do arquivo e armazenar apenas os metadados no MongoDB.