PouchDB - Eliminar lote

Puede eliminar una serie de documentos en PouchDB a la vez utilizando el bulkDocs()método. Para hacerlo, debe crear una matriz de documentos que se eliminarán donde, cada documento debe contener_id y _rev. Además de estos, debe agregar otro par clave-valor_deleted: true.

Suponga que la base de datos llamada my_database que se almacena localmente en PouchDB contiene 3 documentos a saber, doc1, doc2, doc3 con el siguiente contenido.

doc1 = {_id: '001', name: 'Ram', age: 23, Designation: 'Programmer'}
doc2 = {_id: '002', name: 'Robert', age: 24, Designation: 'Programmer'}
doc3 = {_id: '003', name: 'Rahim', age: 25, Designation: 'Programmer'}

Y digamos, tenemos que borrar los tres documentos. Entonces, en primer lugar, debe obtener su_revvalores. Por lo tanto, obtenga el contenido de estos documentos utilizando el siguiente código.

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

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

//Retrieving all the documents in PouchDB
db.allDocs({include_docs: true},function(err, docs) {
   if (err) {
      return console.log(err);
   } else {
      console.log(docs.rows);
   }
});

Guarde el código anterior como bulk_fetch.js. La ejecución del programa anterior le da los valores _id y _rev de los documentos en la base de datos como se muestra a continuación.

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' } 
   },
   { 
      id: '003',
      key: '003',
      value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' } 
   } 
]

Ahora, puede eliminar los documentos utilizando sus respectivos _id y _rev valores como se muestra a continuación.

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

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

//Preparing the document
docs = [{_id : '001', _rev: '2-77f3a9974dd578d12f3f2a33aae64c8d', _deleted : true },
      {_id : '002', _rev: '2-43966007568ce9567c96422195fcfa0d', _deleted : true }, 
      {_id : '003', _rev: '2-6c5349652527f4f39583ff14f23cd677',_deleted : true }]

//Deleting Documents
db.bulkDocs(docs, function(err, response) {
   if (err) {
      return console.log(err);
   } else {
      console.log(response+"Documents deleted Successfully");
   }
});

Guarde el código anterior en un archivo con el nombre Delete_All_Document.js. Abra el símbolo del sistema y ejecute el archivo JavaScript usando el nodo como se muestra a continuación.

C:\PouchDB_Examples >node Delete_All_Document.js

Esto elimina todos los documentos que existen en la base de datos denominada my_database que se almacena localmente, mostrando el siguiente mensaje.

Documents Deleted Successfully

Ahora, si ejecuta el bulk_fetch.js programa, puede observar una llave vacía en la consola que indica que la base de datos está vacía, como se muestra a continuación.

[]

Eliminar lote de una base de datos remota

Puede actualizar todos los documentos de 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.

Si seleccionamos la base de datos llamada my_database, puede observar que contiene 3 documentos como se muestra en la siguiente captura de pantalla.

A continuación se muestra un ejemplo de cómo eliminar todos los documentos que existen en una base de datos denominada 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');

//Preparing the document
docs = [{_id : '001', _rev: '4-6bc8d9c7a60fed2ed1667ec0740c1f39', _deleted : true },
      {_id : '002', _rev: '2-1aa24ce77d96bb9d2a0675cdf1e113e0', _deleted : true },
      {_id : '003', _rev: '2-fa113149ba618eda77f73072974a2bc1',_deleted : true }]

//Deleting Documents
db.bulkDocs(docs, function(err, response) {
   if (err) {
      return console.log(err);
   } else {
      console.log("Documents deleted Successfully");
   }
});

Guarde el código anterior en un archivo con nombre Remote_delete_AllDocuments.js. Abra el símbolo del sistema y ejecute el archivo JavaScript usando el nodo como se muestra a continuación.

C:\PouchDB_Examples >node Remote_Delete_AllDocuments.js

Esto elimina el contenido de todo el documento dado que existe en la base de datos llamada my_database que se almacena en CouchDB y muestra el siguiente mensaje.

Documents Deleted Successfully