PouchDB - Atualizar Documento

Sempre que criamos um documento no PouchDB, um novo campo _rev é gerado e é conhecido como revision marker. o_revO valor de é um número aleatório único, cada vez que fazemos alterações no documento, o valor de _rev Mudou.

Você pode atualizar um documento existente no PouchDB usando o (_rev). Para fazer isso, primeiro recupere o_revvalor do documento que queremos atualizar. Agora, coloque o conteúdo que deve ser atualizado junto com o recuperado_rev valor em um novo documento e, finalmente, insira este documento no PouchDB usando o put() método.

Exemplo

Suponha que temos um documento no PouchDB com id 001que tem detalhes de uma pessoa. Para atualizar este documento, devemos ter seu número rev. Portanto, para recuperar o conteúdo do documento, o código a seguir é usado.

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

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

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

Ao executar o código acima, você receberá a seguinte saída.

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

Agora, usando o _rev você pode atualizar o valor da chave “age”A 26, conforme mostrado no código a seguir.

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

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

//Preparing the document for update
doc = {
   age: 26,
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   }

//Inserting Document
db.put(doc);

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

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

C:\Pouch_Examples>node Update_Document.js

Isso atualiza o conteúdo de um determinado documento que existe no banco de dados denominado my_databaseque é armazenado localmente. A mensagem a seguir é exibida no console.

{ 
   name: 'Raju',
   age: 26,
   designation: 'Designer',
   _id: '001',
   _rev: '2-61b523ccdc4e41a8435bdffbb057a7a5' 
}

Atualizando um documento em um banco de dados remoto

Você também pode atualizar um documento existente em um banco de dados 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 atualizado.

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.

Ao clicar no banco de dados chamado my_database, você pode ver a seguinte captura de tela. Aqui, você pode observar que este banco de dados contém um documento com id001.

A seguir está um exemplo de atualização da idade do documento com id como “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');

//Preparing the document for update
doc = {
   age: 26,
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   }

//Inserting Document
db.put(doc);

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

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

C:\PouchDB_Examples >node Remote_Update_Document.js

Isso atualiza o conteúdo de um determinado documento que existe no banco de dados denominado my_databaseque é armazenado no CouchDB. A mensagem a seguir é exibida no console.

{
   _id: '001',
   _rev: '2-b9640bffbce582c94308905eed8bb545',
   name: 'Raju',
   age: 26,
   designation: 'Designer' 
}