PouchDB - Perbarui Batch

Anda dapat memperbarui berbagai dokumen di PouchDB sekaligus menggunakan bulkDocs()metode. Untuk melakukannya, Anda perlu membuat array dokumen di mana, setiap dokumen berisi_id, _rev dan nilai yang akan diperbarui.

Misalkan database bernama my_database yang disimpan secara lokal di PouchDB berisi 3 dokumen yaitu doc1, doc2, doc3 dengan isi sebagai berikut.

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'}

Misalkan kita harus meningkatkan nilai usia di semua 3 dokumen sebanyak 2 tahun. Agar ini terjadi, pertama-tama Anda perlu mendapatkan file_revnilai-nilai. Oleh karena itu, ambil konten dokumen ini menggunakan kode berikut.

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

Simpan kode di atas sebagai bulk_fetch.js. Saat menjalankan, program di atas memberi Anda nilai _id dan _rev dari dokumen dalam database seperti yang ditunjukkan di bawah ini.

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' } 
   },
   { 
      id: '003',
      key: '003',
      value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' } 
   } 
]

Sekarang, Anda dapat memperbarui dokumen menggunakan masing-masing _id dan _rev nilai seperti yang ditunjukkan di bawah ini.

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

Simpan kode di atas dalam file dengan nama Update_All_Document.js. Buka command prompt dan jalankan file JavaScript menggunakan node seperti yang ditunjukkan di bawah ini.

C:\PouchDB_Examples >node Update_All_Document.js

Ini memperbarui semua dokumen yang ada di database bernama my_database yang disimpan secara lokal, menampilkan pesan berikut.

Documents Updated Successfully

Sekarang, jika Anda menjalankan file bulk_fetch.js program dengan menambahkan {include_docs: true} sebagai parameter untuk allDocs() fungsi, sebelum panggilan balik, kemudian, Anda akan melihat nilai-nilai dokumen diperbarui, seperti yang ditunjukkan di bawah ini.

[ 
   { 
      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' 
      } 
   } 
]

Memperbarui Batch dari Database Jarak Jauh

Anda dapat memperbarui semua dokumen dari database yang disimpan dari jarak jauh di server (CouchDB).

Untuk melakukannya, alih-alih nama database, Anda harus meneruskan jalur ke database di CouchDB, yang berisi dokumen yang akan dibaca.

Contoh

Misalkan ada database bernama my_databasedi server CouchDB. Kemudian, jika Anda memverifikasi daftar database di CouchDB menggunakan URLhttp://127.0.0.1:5984/_utils/index.html Anda akan mendapatkan screenshot berikut.

Dan asumsikan jika kita memilih database bernama my_database, Anda dapat mengamati bahwa itu berisi 3 dokumen seperti yang ditunjukkan pada gambar layar berikut.

Sekarang, ambil konten dokumen ini menggunakan kode berikut.

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

Simpan kode di atas sebagai remote_bulk_fetch.js. Saat menjalankan, program di atas memberi Anda konten dari semua dokumen dalam database seperti yang ditunjukkan di bawah ini.

[ 
   { 
      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' 
      } 
   } 
]

Berikut ini adalah contoh pembaruan semua dokumen yang ada di database bernama my_database yang disimpan di server 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"); 
   } 
});

Simpan kode di atas dalam file dengan nama Remote_Update_Document.js. Buka command prompt dan jalankan file JavaScript menggunakan node seperti yang ditunjukkan di bawah ini.

C:\PouchDB_Examples >node Remote_Update_Document.js

Ini memperbarui konten dari semua dokumen yang diberikan yang ada di database bernama my_database yang disimpan di CouchDB, dan menampilkan pesan berikut.

Documents Updated Successfully

Sekarang, jika Anda menjalankan file remote_bulk_fetch.js Program Anda akan dapat melihat nilai-nilai dokumen yang diperbarui, seperti yang ditunjukkan di bawah ini.

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '4-6bc8d9c7a60fed2ed1667ec0740c1f39' },
      doc: { 
         _id: '001',
         _rev: '4-6bc8d9c7a60fed2ed1667ec0740c1f39',
         age: 25 
      } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '2-1aa24ce77d96bb9d2a0675cdf1e113e0' },
      doc: { 
         _id: '002',
         _rev: '2-1aa24ce77d96bb9d2a0675cdf1e113e0',
         age: 26 
      } 
   },
   { 
      id: '003',
      key: '003',
      value: { rev: '2-fa113149ba618eda77f73072974a2bc1' },
      doc: { 
         _id: '003',
         _rev: '2-fa113149ba618eda77f73072974a2bc1',
         age: 27 
      } 
   } 
]