Всякий раз, когда мы создаем документ в PouchDB, создается новое поле _rev , которое называется маркером ревизии . Значение _rev является уникальным случайным числом, каждый раз, когда мы вносим изменения в документ, значение _rev изменяется.
Вы можете обновить существующий документ в PouchDB, используя (_rev) . Для этого прежде всего получите значение _rev документа, который мы хотим обновить. Теперь поместите содержимое, которое необходимо обновить, вместе с полученным значением _rev в новый документ и, наконец, вставьте этот документ в PouchDB, используя метод put () .
пример
Предположим, у нас есть документ в PouchDB с идентификатором 001, в котором есть данные о человеке. Чтобы обновить этот документ, у нас должен быть номер его версии. Поэтому для извлечения содержимого документа используется следующий код.
//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); } });
Выполнив приведенный выше код, вы получите следующий вывод.
{ _id: '001', _rev: '3-552920d1ca372986fad7b996ce365f5d', name: 'Raju', age: 23, designation: 'Designer' }
Теперь, используя _rev, вы можете обновить значение ключа « age » до 26, как показано в следующем коде.
//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); } });
Сохраните приведенный выше код в файле с именем Update_Document.js . Откройте командную строку и выполните файл JavaScript, используя узел, как показано ниже.
C:\Pouch_Examples>node Update_Document.js
Это обновляет содержимое данного документа, который существует в базе данных с именем my_database, которая хранится локально. Следующее сообщение отображается на консоли.
{ name: 'Raju', age: 26, designation: 'Designer', _id: '001', _rev: '2-61b523ccdc4e41a8435bdffbb057a7a5' }
Обновление документа в удаленной базе данных
Вы также можете обновить существующий документ в базе данных, которая удаленно хранится на сервере (CouchDB).
Для этого вместо имени базы данных вам нужно передать путь к базе данных в CouchDB, которая содержит документ, который должен быть обновлен.
пример
Предположим, что на сервере CouchDB есть база данных с именем my_database . Затем, если вы проверите список баз данных в CouchDB, используя URL-адрес http://127.0.0.1:5984/_utils/index.html, вы получите следующий снимок экрана.
Нажав на базу данных с именем my_database , вы можете увидеть следующий скриншот. Здесь вы можете заметить, что эта база данных содержит документ с идентификатором 001 .
Ниже приведен пример обновления возраста документа с идентификатором « 001 », который существует в базе данных с именем my_database, которая хранится на сервере 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); } });
Сохраните приведенный выше код в файле с именем Remote_Update_Document.js . Откройте командную строку и выполните файл JavaScript, используя узел, как показано ниже.
C:\PouchDB_Examples >node Remote_Update_Document.js
Это обновляет содержимое данного документа, который существует в базе данных с именем my_database, которая хранится в CouchDB. Следующее сообщение отображается на консоли.