PouchDB Update Batch
To update a batch in PouchDB, the bulkDocs() method is used.
Example:
- Retrieve the values of a bulk document.
Output:[ { id: '101', key: '101', value: { rev: '1-f56789f432154adb782da98358921a14' }, doc: { name: 'Tom', salary: 25000, experience: 3, _id: '101', _rev: '1-f56789f432154adb782da98358921a14' } }, { id: '102', key: '102', value: { rev: '1-3cacb3a45e5678d90870f4e92dc9876d' }, doc: {name: 'Jerry', salary: 20000, experience: 2, _id: '102', _rev: '1-3cacb3a45e5678d90870f4e92dc9876d' } }, { id: '103', key: '103', value: { rev: '1-afec1229a76543db973ace8fcbacd45' }, doc: { name: 'Bruno', salary: 30000, experience: 4, _id: '103', _rev: '1-afec1229a76543db973ace8fcbacd45' } } ]
- Using the respective _id and _rev values of the document to update them.
- Create a file named “UpdateBatch.js” within a folder named “Examples”.
- Add the below code to the file.
UpdateBatch.js:var PouchDB = require('PouchDB'); var db = new PouchDB('Example_Database'); docs = [{_id : '101', _rev:'1-f56789f432154adb782da98358921a14', salary : 30000, name: 'Smith' }, {_id : '102', _rev: '1-3cacb3a45e5678d90870f4e92dc9876d', salary : 25000, name: 'John' }, {_id : '103', _rev: '1-afec1229a76543db973ace8fcbacd45', salary : 35000, name: 'Holmes' }] db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log("Batch Successfully Updated."); } });
- Open the command prompt.
- Execute the .js file.
node UpdateBatch.js
Console Output:
Batch Successfully Updated.
Verification:
Verify the update by reading batch again:
Output:
[ { id: '101', key: '101', value: { rev: '2-a456ba2f9901a408e98406c424f390a23' }, doc: { salary : 30000, name: 'Smith', _id: '101', _rev: '2-a456ba2f9901a408e98406c424f390a23' } }, { id: '102', key: '102', value: { rev: '2-5cc4bbcd994d4a9cb0e4376cc5acaba56' }, doc: { salary : 25000, name: 'John', _id: '102', _rev: '2-5cc4bbcd994d4a9cb0e4376cc5acaba56' } }, { id: '103', key: '103', value: { rev: '2-345acb54a8eb4181b17f5f6c9c2b5b6c7' }, doc: { salary : 35000, name: 'Holmes', _id: '103', _rev: '2-345acb54a8eb4181b17f5f6c9c2b5b6c7' } } ] |
To update Batch in Remote Database:
Instead of the database name, pass the path of the database to update a batch in CouchDB or remote server.
Example:
- Retrieve the values of a bulk document.
Output:[ { id: '101', key: '101', value: { rev: '1-acb312f4321546901aada9835889ccca1' }, doc: { name: 'Tom', salary: 25000, experience: 3, _id: '101', _rev: '1-acb312f4321546901aada9835889ccca1' } }, { id: '102', key: '102', value: { rev: '1-1a2c3b3a45ae5111d90870f4e92dc55543' }, doc: {name: 'Jerry', salary: 20000, experience: 2, _id: '102', _rev: '1-1a2c3b3a45ae5111d90870f4e92dc55543' } }, { id: '103', key: '103', value: { rev: '1-345ac229a76543db6ab5648fc987bbb5' }, doc: { name: 'Bruno', salary: 30000, experience: 4, _id: '103', _rev: '1-345ac229a76543db6ab5648fc987bbb5' } } ]
- Using the respective _id and _rev values of the document to update them.
- Create a file named “UpdateRemoteBatch.js” within a folder named “Examples”.
- Add the below code to the file.
UpdateRemoteBatch.js:var PouchDB = require('PouchDB'); var db = new PouchDB('http://localhost:5984/students'); docs = [{_id : '101', _rev:'1-345ac229a76543db6ab5648fc987bbb5', salary : 30000, name: 'Smith' }, {_id : '102', _rev:'1-1a2c3b3a45ae5111d90870f4e92dc55543', salary : 25000, name: 'John' }, {_id : '103', _rev: '1-acb312f4321546901aada9835889ccca1', salary : 35000, name: 'Holmes' }] db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log("Batch Successfully Updated."); } });
- Open the command prompt.
- Execute the .js file.
node UpdateRemoteBatch.js
Console Output:
Batch Successfully Updated.
Verification:
Verify the update by reading batch again:
Output:
[ { id: '101', key: '101', value: { rev: '2-b443aabf965ba789406c424f344455661' }, doc: { salary : 30000, name: 'Smith', _id: '101', _rev: '2-b443aabf965ba789406c424f344455661' } }, { id: '102', key: '102', value: { rev: '2-567a2354a8eaca6b4181b132456accbba' }, doc: { salary : 25000, name: 'John', _id: '102', _rev: '2-567a2354a8eaca6b4181b132456accbba' } }, { id: '103', key: '103', value: { rev: '2-d321abc54a8eb4181b17f5f6c9c27845cac' }, doc: { salary : 35000, name: 'Holmes', _id: '103', _rev: '2-d321abc54a8eb4181b17f5f6c9c27845cac' } } ] |