PouchDB - Eliminación de adjuntos
Puede eliminar un archivo adjunto de PouchDB utilizando el removeAttachment() método.
Sintaxis
A continuación se muestra la sintaxis del removeAttachment()método. Para este método, tenemos que pasar la identificación del documento, la identificación del adjunto y el valor _rev. Este método también acepta una función de devolución de llamada opcional.
db.removeAttachment ( docId, attachmentId, rev, [callback] );
Ejemplo
Supongamos que hay un documento en PouchDB con id 001, que contiene identificación, nombre, edad, designación de un empleado junto con un archivo adjunto como se muestra a continuación.
{
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 continuación se muestra un ejemplo de cómo eliminar el archivo adjunto de este documento. 001 almacenado en 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")
}
});
Guarde el código anterior en un archivo con el nombre Remove_Attachment.js. Abra el símbolo del sistema y ejecute el archivo JavaScript usandonode Como se muestra abajo.
C:\PouchDB_Examples >node Remove_Attachment.js
Esto elimina el archivo adjunto del documento y muestra un mensaje en la consola como se muestra a continuación.
Attachment deleted successfully
Después de la eliminación, puede verificar el contenido del documento ejecutando el siguiente código.
//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);
}
});
Guarda este código como read.jsy ejecutarlo. Al ejecutar, obtendrá el contenido del documento después de eliminar el archivo adjunto, como se muestra a continuación.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_id: '001',
_rev: '3-da775487a6ed0495f2e49c543384f8e8'
}
Eliminación de adjuntos de un documento remoto
Puede eliminar un archivo adjunto de un documento existente en la base de datos que se almacena de forma remota en el servidor (CouchDB).
Para hacerlo, en lugar de un nombre de base de datos, debe pasar la ruta a la base de datos en CouchDB, que contiene el documento que se va a leer.
Ejemplo
Supongamos que hay una base de datos llamada my_databaseen el servidor CouchDB. Luego, si verifica la lista de bases de datos en CouchDB usando la URLhttp://127.0.0.1:5984/_utils/index.html obtendrá la siguiente captura de pantalla.
Y si selecciona la base de datos llamada my_database, puede ver su contenido como se muestra a continuación.
Suponga que hay un archivo adjunto en este documento como se muestra a continuación.
A continuación se muestra un ejemplo de cómo eliminar el adjunto del documento mencionado anteriormente. 001 que existe en una base de datos llamada my_database que se almacena en el 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")
}
});
Guarde el código anterior en un archivo con el nombre Remote_Delete_Attachment.js. Abra el símbolo del sistema y ejecute el archivo JavaScript usandonode Como se muestra abajo.
C:\PouchDB_Examples >node Remote_Delete_Attachment.js
Esto elimina el archivo adjunto existente y muestra el siguiente mensaje.
Attachment Deleted successfully
Si visita el documento nuevamente, puede notar que el adjunto fue eliminado como se muestra en la siguiente captura de pantalla.