PouchDB - Excluir lote

Você pode deletar uma série de documentos no PouchDB de uma vez usando o bulkDocs()método. Para fazer isso, você precisa criar uma série de documentos que devem ser excluídos, onde cada documento deve conter_id e _rev. Além disso, você deve adicionar outro par de valores-chave_deleted: true.

Suponha que o banco de dados denominado my_database que é armazenado localmente no PouchDB contém 3 documentos, nomeadamente doc1, doc2, doc3 com os seguintes conteúdos.

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'}

E, digamos, temos que excluir todos os três documentos. Então, antes de tudo, você precisa obter seus_revvalores. Portanto, busque o conteúdo desses documentos usando o código a seguir.

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

Salve o código acima como bulk_fetch.js. Executar o programa acima fornece os valores _id e _rev dos documentos no banco de dados, conforme mostrado abaixo.

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

Agora, você pode excluir os documentos usando seus respectivos _id e _rev valores conforme mostrado abaixo.

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

Salve o código acima em um arquivo com o nome Delete_All_Document.js. Abra o prompt de comando e execute o arquivo JavaScript usando o nó conforme mostrado abaixo.

C:\PouchDB_Examples >node Delete_All_Document.js

Isso exclui todos os documentos que existem no banco de dados denominado my_database que é armazenado localmente, exibindo a seguinte mensagem.

Documents Deleted Successfully

Agora, se você executar o bulk_fetch.js programa, você pode observar uma chave vazia no console indicando que o banco de dados está vazio, conforme mostrado abaixo.

[]

Excluindo lote de um banco de dados remoto

Você pode atualizar todos os documentos do banco de dados que estão armazenados 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.

Se selecionarmos o banco de dados chamado my_database, você pode observar que contém 3 documentos conforme mostrado na imagem a seguir.

A seguir está um exemplo de exclusão de todos os documentos que existem em um banco de dados denominado 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');

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

Salve o código acima em um arquivo com o nome Remote_delete_AllDocuments.js. Abra o prompt de comando e execute o arquivo JavaScript usando o nó conforme mostrado abaixo.

C:\PouchDB_Examples >node Remote_Delete_AllDocuments.js

Isso exclui o conteúdo de todos os documentos fornecidos no banco de dados denominado my_database que é armazenado no CouchDB e exibe a seguinte mensagem.

Documents Deleted Successfully