PouchDB - Batch aktualisieren

Sie können eine Reihe von Dokumenten in PouchDB gleichzeitig mit dem aktualisieren bulkDocs()Methode. Dazu müssen Sie ein Array von Dokumenten erstellen, in denen jedes Dokument enthalten ist_id, _rev und die Werte, die aktualisiert werden sollen.

Angenommen, die Datenbank heißt my_database Das lokal in PouchDB gespeicherte Dokument enthält 3 Dokumente, nämlich doc1, doc2, doc3 mit den folgenden Inhalten.

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

Angenommen, wir müssen die Alterswerte in allen 3 Dokumenten um 2 Jahre erhöhen. Dazu müssen Sie zuerst die_revWerte. Rufen Sie daher den Inhalt dieser Dokumente mit dem folgenden Code ab.

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

Speichern Sie den obigen Code als bulk_fetch.js. Beim Ausführen des obigen Programms erhalten Sie die Werte _id und _rev der Dokumente in der Datenbank, wie unten gezeigt.

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

Jetzt können Sie die Dokumente mit ihren jeweiligen aktualisieren _id und _rev Werte wie unten gezeigt.

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

Speichern Sie den obigen Code in einer Datei mit dem Namen Update_All_Document.js. Öffnen Sie die Eingabeaufforderung und führen Sie die JavaScript-Datei mit dem unten gezeigten Knoten aus.

C:\PouchDB_Examples >node Update_All_Document.js

Dadurch werden alle Dokumente aktualisiert, die in der genannten Datenbank vorhanden sind my_database die lokal gespeichert wird und die folgende Meldung anzeigt.

Documents Updated Successfully

Nun, wenn Sie die ausführen bulk_fetch.js Programm durch Hinzufügen {include_docs: true} als Parameter zu allDocs() Funktion, dann sehen Sie vor dem Rückruf die Werte der Dokumente aktualisiert, wie unten gezeigt.

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

Aktualisieren des Stapels aus einer entfernten Datenbank

Sie können alle Dokumente aus der Datenbank aktualisieren, die remote auf dem Server (CouchDB) gespeichert ist.

Dazu müssen Sie anstelle eines Datenbanknamens den Pfad zur Datenbank in CouchDB übergeben, die das zu lesende Dokument enthält.

Beispiel

Angenommen, es gibt eine Datenbank mit dem Namen my_databaseauf dem CouchDB-Server. Wenn Sie dann die Liste der Datenbanken in CouchDB mithilfe der URL überprüfenhttp://127.0.0.1:5984/_utils/index.html Sie erhalten den folgenden Screenshot.

Und nehmen wir an, wir wählen die genannte Datenbank aus my_databasekönnen Sie beobachten, dass es 3 Dokumente enthält, wie im folgenden Screenshot gezeigt.

Rufen Sie nun den Inhalt dieser Dokumente mit dem folgenden Code ab.

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

Speichern Sie den obigen Code als remote_bulk_fetch.js. Bei der Ausführung erhalten Sie mit dem obigen Programm den Inhalt aller Dokumente in der Datenbank, wie unten gezeigt.

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

Im Folgenden finden Sie ein Beispiel für die Aktualisierung aller Dokumente, die in einer Datenbank mit dem Namen vorhanden sind my_database welches auf dem CouchDB-Server gespeichert ist.

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

Speichern Sie den obigen Code in einer Datei mit dem Namen Remote_Update_Document.js. Öffnen Sie die Eingabeaufforderung und führen Sie die JavaScript-Datei mit dem unten gezeigten Knoten aus.

C:\PouchDB_Examples >node Remote_Update_Document.js

Dadurch wird der Inhalt aller angegebenen Dokumente aktualisiert, die in der genannten Datenbank vorhanden sind my_database Dies wird in CouchDB gespeichert und zeigt die folgende Meldung an.

Documents Updated Successfully

Nun, wenn Sie die ausführen remote_bulk_fetch.js Programm können Sie die Werte der Dokumente aktualisiert sehen, wie unten gezeigt.

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