PouchDB - Excluindo Anexo

Você pode excluir um anexo do PouchDB usando o removeAttachment() método.

Sintaxe

A seguir está a sintaxe do removeAttachment()método. Para este método, temos que passar o id do documento, id do anexo e valor _rev. Este método também aceita uma função de retorno de chamada opcional.

db.removeAttachment ( docId, attachmentId, rev, [callback] );

Exemplo

Suponha que haja um documento no PouchDB com id 001, que contém id, nome, idade, designação de um funcionário junto com um anexo conforme mostrado abaixo.

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _attachments: { 
      'att_1.txt': { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '001',
   _rev: '2-cdec6c9f45ddbee7d456945654742d43' 
}

A seguir está um exemplo de exclusão do anexo deste documento 001 armazenado no PouchDB, usando removeAttachment() método.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my');
db.removeAttachment('001', 'att_1.txt', '2-cdec6c9f45ddbee7d456945654742d43', 
   function(err, res) {
   if (err) {
      return console.log(err);
   } else {
      console.log(res+"Attachment Deleted successfully")
   }
});

Salve o código acima em um arquivo com o nome Remove_Attachment.js. Abra o prompt de comando e execute o arquivo JavaScript usandonode como mostrado abaixo.

C:\PouchDB_Examples >node Remove_Attachment.js

Isso remove o anexo do documento e exibe uma mensagem no console, conforme mostrado abaixo.

Attachment deleted successfully

Após a exclusão, você pode verificar o conteúdo do documento executando o código a seguir.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_d');

//Reading the Document
db.get('001',{attachments: true}, function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

Salve este código como read.jse executá-lo. Ao executar, você obterá o conteúdo do documento após excluir o anexo, conforme mostrado abaixo.

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _id: '001',
   _rev: '3-da775487a6ed0495f2e49c543384f8e8' 
}

Removendo anexo de um documento remoto

Você pode excluir um anexo de um documento existente no banco de dados que está armazenado remotamente no servidor (CouchDB).

Para fazer isso, em vez de um nome de banco de dados, você precisa passar o caminho para o banco de dados no CouchDB, que contém o documento a ser lido.

Exemplo

Suponha que haja um banco de dados chamado my_databaseno servidor CouchDB. Então, se você verificar a lista de bancos de dados no CouchDB usando o URLhttp://127.0.0.1:5984/_utils/index.html você obterá a seguinte captura de tela.

E se você selecionar o banco de dados chamado my_database, você pode visualizar seu conteúdo conforme mostrado abaixo.

Suponha que haja um anexo neste documento conforme mostrado abaixo.

A seguir está um exemplo de exclusão do anexo mencionado acima do documento 001 que existe em um banco de dados chamado my_database que é armazenado no servidor CouchDB.

//Requiring the package 
var PouchDB = require('PouchDB');

//Creating the database object 
var db = new PouchDB('http://localhost:5984/my_database');

db.removeAttachment('001', 'att_1.txt', '2-049f1c4ffa54576ec0947b65e34de423', 
   function(err, res) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log(res+"Attachment Deleted successfully") 
   } 
});

Salve o código acima em um arquivo com o nome Remote_Delete_Attachment.js. Abra o prompt de comando e execute o arquivo JavaScript usandonode como mostrado abaixo.

C:\PouchDB_Examples >node Remote_Delete_Attachment.js

Isso remove o anexo existente e exibe a seguinte mensagem.

Attachment Deleted successfully

Se você visitar o documento novamente, poderá notar que o anexo foi excluído conforme mostrado na imagem a seguir.