Pouchdb-fetch-batch

提供:Dev Guides
移動先:案内検索

PouchDB-フェッチバッチ

  • allDocs()*メソッドを使用して、PouchDBのデータベースから複数/バルクドキュメントを読み取り/取得できます。

構文

以下に、PouchDBの* db.allDocs()*メソッドを使用する構文を示します。 このメソッドは、オプションのコールバック関数を受け入れます。

db.allDocs()

以下は、* db.allDocs()メソッドを使用して、ローカルに保存されている *my_database という名前のデータベース内のすべてのドキュメントを取得する例です。 このメソッドは、ドキュメントの配列をオブジェクトの形式で取得し、 docs.rows として呼び出す必要がある各ドキュメントのコンテンツを取得します。

//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(function(err, docs) {
   if (err) {
      return console.log(err);
   } else {
      console.log (docs.rows);
   }
});

上記のコードを Read_All_Document.js という名前のファイルに保存します。 以下に示すように、コマンドプロンプトを開き、 node を使用してJavaScriptファイルを実行します。

C:\PouchDB_Examples >node Read_All_Document.js

これは、ローカルに保存されている my_database という名前のデータベースに存在するすべてのドキュメントを読み取ります。 次のメッセージがコンソールに表示されます。

[
   {
      id: '001',
      key: '001',
      value: { rev: '1-9dc57f5faa7ea90eeec22eba8bfd05f5' }
   },
   {
      id: '002',
      key: '002',
      value: { rev: '1-9bf80afcedb9f8b5b35567292affb254' }
    },
   {
      id: '003',
      key: '003',
      value: { rev: '1-1204f108e41bf8baf867856d5da16c57' }
   }
]

一般に、上記の結果に示すように、* allDocs()メソッドを使用すると、各ドキュメントの *_id、key および _rev フィールドのみを表示できます。 ただし、結果にドキュメント全体を含めるには、以下に示すようにオプションのパラメーター include_docs をtrueにする必要があります。

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

上記のコードを実行すると、次のコードに示すように、指定されたドキュメント内の完全なドキュメントのリストが表示されます。

[
   {
      id: '001',
      key: '001',
      value: { rev: '1-9dc57f5faa7ea90eeec22eba8bfd05f5' },
      doc: {
         name: 'Ram',
         age: 23,
         Designation: 'Programmer',
         _id: '001',
         _rev: '1-9dc57f5faa7ea90eeec22eba8bfd05f5'
      }
   },
   {
      id: '002',
      key: '002',
      value: { rev: '1-9bf80afcedb9f8b5b35567292affb254' },
      doc: {
         name: 'Robert',
         age: 24,
         Designation: 'Programmer',
         _id: '002',
         _rev: '1-9bf80afcedb9f8b5b35567292affb254'
      }
   },
   {
      id: '003',
      key: '003',
      value: { rev: '1-1204f108e41bf8baf867856d5da16c57' },
      doc: {
         name: 'Rahim',
         age: 25,
         Designation: 'Programmer',
         _id: '003',
         _rev: '1-1204f108e41bf8baf867856d5da16c57'
      }
   }
]

リモートデータベースからのバッチの読み取り

サーバー(CouchDB)にリモートで保存されているデータベースからすべてのドキュメントを取得することもできます。

データベース名の代わりにこれを行うには、読み取るドキュメントを含むCouchDBのデータベースにパスを渡す必要があります。

CouchDBサーバーに my_database という名前のデータベースがあるとします。 次に、URL http://127.0.0.1:5984/_utils/indexl を使用してCouchDB内のデータベースのリストを確認すると、次のスクリーンショットが表示されます。

リモートデータベースからのバッチの読み取り

以下は、CouchDBサーバーに保存されている my_database という名前のデータベースに存在するすべてのドキュメントを読み取る例です。

//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_Read_AllDocument.js という名前のファイルに保存します。 以下に示すように、コマンドプロンプトを開き、 node を使用してJavaScriptファイルを実行します。

C:\PouchDB_Examples >node Remote_Read_AllDocument.js

これは、CouchDBに保存されている my_database という名前のデータベースに存在する特定のドキュメントの内容を読み取り、以下に示すようにコンソールに表示します。

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