PouchDB - Eliminazione di un allegato

È possibile eliminare un allegato da PouchDB utilizzando il file removeAttachment() metodo.

Sintassi

Di seguito è riportata la sintassi di removeAttachment()metodo. A questo metodo, dobbiamo passare l'ID del documento, l'ID dell'allegato e il valore _rev. Questo metodo accetta anche una funzione di callback opzionale.

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

Esempio

Supponiamo che ci sia un documento in PouchDB con id 001, che contiene ID, nome, età, designazione di un dipendente insieme a un allegato come mostrato di seguito.

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

Di seguito è riportato un esempio di eliminazione dell'allegato di questo documento 001 archiviato in PouchDB, utilizzando removeAttachment() metodo.

//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")
   }
});

Salva il codice sopra in un file con il nome Remove_Attachment.js. Apri il prompt dei comandi ed esegui il file JavaScript utilizzandonode come mostrato di seguito.

C:\PouchDB_Examples >node Remove_Attachment.js

Ciò rimuove l'allegato del documento e visualizza un messaggio sulla console come mostrato di seguito.

Attachment deleted successfully

Dopo l'eliminazione, è possibile verificare il contenuto del documento eseguendo il codice seguente.

//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);
   }
});

Salva questo codice come read.jsed eseguirlo. All'esecuzione, otterrai il contenuto del documento dopo aver eliminato l'allegato, come mostrato di seguito.

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

Rimozione di un allegato da un documento remoto

È possibile eliminare un allegato di un documento esistente nel database archiviato in remoto sul server (CouchDB).

Per fare ciò, invece del nome di un database, è necessario passare il percorso al database in CouchDB, che contiene il documento da leggere.

Esempio

Supponiamo che ci sia un database denominato my_databasenel server CouchDB. Quindi, se verifichi l'elenco dei database in CouchDB utilizzando l'URLhttp://127.0.0.1:5984/_utils/index.html otterrai il seguente screenshot.

E se selezioni il database denominato my_database, puoi visualizzarne il contenuto come mostrato di seguito.

Supponiamo che ci sia un allegato in questo documento come mostrato di seguito.

Di seguito è riportato un esempio di eliminazione del suddetto allegato del documento 001 che esiste in un database denominato my_database che è memorizzato nel server 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") 
   } 
});

Salva il codice sopra in un file con il nome Remote_Delete_Attachment.js. Apri il prompt dei comandi ed esegui il file JavaScript utilizzandonode come mostrato di seguito.

C:\PouchDB_Examples >node Remote_Delete_Attachment.js

Ciò rimuove l'allegato esistente e visualizza il seguente messaggio.

Attachment Deleted successfully

Se visiti nuovamente il documento, puoi notare che l'allegato è stato eliminato come mostrato nella schermata seguente.