PouchDB - Actualizar documento

Siempre que creamos un documento en PouchDB, un nuevo campo _rev se genera, y se conoce como revision marker. los_revEl valor es un número aleatorio único, cada vez que hacemos cambios en el documento, el valor de _rev está cambiado.

Puede actualizar un documento existente en PouchDB usando el (_rev). Para hacerlo, primero recupere el_revvalor del documento que queremos actualizar. Ahora, coloque el contenido que se actualizará junto con el recuperado._rev valor en un nuevo documento, y finalmente inserte este documento en PouchDB usando el put() método.

Ejemplo

Supongamos que tenemos un documento en PouchDB con id 001que tiene detalles de una persona. Para actualizar este documento, debemos tener su número de rev. Por tanto, para recuperar el contenido del documento se utiliza el siguiente código.

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

Al ejecutar el código anterior, recibirá el siguiente resultado.

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

Ahora, usando el _rev puedes actualizar el valor de la clave "age”A 26, como se muestra en el siguiente código.

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

Guarde el código anterior en un archivo con el nombre Update_Document.js. Abra el símbolo del sistema y ejecute el archivo JavaScript usandonode Como se muestra abajo.

C:\Pouch_Examples>node Update_Document.js

Esto actualiza el contenido del documento dado que existe en la base de datos llamada my_databaseque se almacena localmente. El siguiente mensaje se muestra en la consola.

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

Actualizar un documento en una base de datos remota

También puede actualizar un documento existente en una 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 actualizará.

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.

Al hacer clic en la base de datos llamada my_database, puedes ver la siguiente captura de pantalla. Aquí, puede observar que esta base de datos contiene un documento con id001.

A continuación, se muestra un ejemplo de cómo actualizar la antigüedad del documento que tiene la identificación como "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');

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

Guarde el código anterior en un archivo con el nombre Remote_Update_Document.js. Abra el símbolo del sistema y ejecute el archivo JavaScript usandonode Como se muestra abajo.

C:\PouchDB_Examples >node Remote_Update_Document.js

Esto actualiza el contenido del documento dado que existe en la base de datos llamada my_databaseque se almacena en CouchDB. El siguiente mensaje se muestra en la consola.

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