Вы можете сразу обновить массив документов в PouchDB, используя метод bulkDocs () . Для этого вам нужно создать массив документов, в котором каждый документ содержит _id, _rev и значения, которые должны быть обновлены.
Предположим, что база данных с именем my_database, которая хранится локально в PouchDB, содержит 3 документа, а именно doc1, doc2, doc3 со следующим содержимым.
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'}
Предположим, нам нужно увеличить возрастные значения во всех 3 документах на 2 года. Чтобы это произошло, сначала вам нужно получить значения _rev . Поэтому извлеките содержимое этих документов, используя следующий код.
//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); } });
Сохраните приведенный выше код как bulk_fetch.js . При выполнении вышеупомянутая программа выдает значения _id и _rev документов в базе данных, как показано ниже.
[ { id: '001', key: '001', value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' } }, { id: '002', key: '002', value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' } }, { id: '003', key: '003', value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' } } ]
Теперь вы можете обновить документы, используя соответствующие значения _id и _rev, как показано ниже.
//Requiring the package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('my_databas'); //Preparing the document docs = [{_id : '001', _rev: '1-1604b0c3ff69dc1e261265fd60808404', age : 25, }, {_id : '002', _rev: '1-b5e49db7e984841bf12a13e3ee548125', age : 26, }, {_id : '003', _rev: '1-a7b342786ecc707aa91f3b321a177b51', age : 27 }] //Updating the documents in bulk db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log("Documents Updated Successfully"); } });
Сохраните приведенный выше код в файле с именем Update_All_Document.js . Откройте командную строку и выполните файл JavaScript, используя узел, как показано ниже.
C:\PouchDB_Examples >node Update_All_Document.js
Это обновляет все документы, которые существуют в базе данных с именем my_database, которая хранится локально, отображая следующее сообщение.
Documents Updated Successfully
Теперь, если вы запустите программу bulk_fetch.js , добавив {include_docs: true} в качестве параметра к функции allDocs () перед обратным вызовом, то вы увидите обновленные значения документов, как показано ниже.
[ { id: '001', key: '001', value: { rev: '2-77f3a9974dd578d12f3f2a33aae64c8d' }, doc: { age: 25, _id: '001', _rev: '2-77f3a9974dd578d12f3f2a33aae64c8d' } }, { id: '002', key: '002', value: { rev: '2-43966007568ce9567c96422195fcfa0d' }, doc: { age: 26, _id: '002', _rev: '2-43966007568ce9567c96422195fcfa0d' } }, { id: '003', key: '003', value: { rev: '2-6c5349652527f4f39583ff14f23cd677' }, doc: { age: 27, _id: '003', _rev: '2-6c5349652527f4f39583ff14f23cd677' } } ]
Обновление пакета из удаленной базы данных
Вы можете обновить все документы из базы данных, которая удаленно хранится на сервере (CouchDB).
Для этого вместо имени базы данных вам нужно передать путь к базе данных в CouchDB, которая содержит документ, который должен быть прочитан.
пример
Предположим, что на сервере CouchDB есть база данных с именем my_database . Затем, если вы проверите список баз данных в CouchDB, используя URL-адрес http://127.0.0.1:5984/_utils/index.html, вы получите следующий снимок экрана.
И предположим, что если мы выберем базу данных с именем my_database , вы можете заметить, что она содержит 3 документа, как показано на следующем снимке экрана.
Теперь загрузите содержимое этих документов, используя следующий код.
//Requiring the package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('http://localhost:5984/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); } });
Сохраните приведенный выше код как remote_bulk_fetch.js . При выполнении вышеупомянутая программа предоставляет вам содержимое всех документов в базе данных, как показано ниже.
[ { id: '001', key: '001', value: { rev: '3-552920d1ca372986fad7b996ce365f5d' }, doc: { _id: '001', _rev: '3-552920d1ca372986fad7b996ce365f5d', name: 'Raju', age: 23, designation: 'Designer' } }, { id: '002', key: '002', value: { rev: '1-9af15cb11054ebe03a7816bf6c5e4128' }, doc: { _id: '002', _rev: '1-9af15cb11054ebe03a7816bf6c5e4128', name: 'Robert', age: 24, Designation: 'Programmer' } }, { id: '003', key: '003', value: { rev: '1-3033b5a78e915c52fd37325d42eb3935' }, doc: { _id: '003', _rev: '1-3033b5a78e915c52fd37325d42eb3935', name: 'Rahim', age: 25, Designation: 'Programmer' } } ]
Ниже приведен пример обновления всех документов, которые существуют в базе данных с именем 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 docs = [{_id : '001', _rev: '3-552920d1ca372986fad7b996ce365f5d', age : 24, }, {_id : '002', _rev: '1-9af15cb11054ebe03a7816bf6c5e4128', age : 26, }, {_id : '003', _rev: '1-3033b5a78e915c52fd37325d42eb3935', age : 27}] //Inserting Document db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log(+"Documents Updated Successfully"); } });
Сохраните приведенный выше код в файле с именем Remote_Update_Document.js . Откройте командную строку и выполните файл JavaScript, используя узел, как показано ниже.
C:\PouchDB_Examples >node Remote_Update_Document.js
Это обновляет содержимое всего данного документа, который существует в базе данных с именем my_database, которая хранится в CouchDB, и отображает следующее сообщение.
Documents Updated Successfully
Теперь, если вы запустите программу remote_bulk_fetch.js, вы увидите обновленные значения документов, как показано ниже.