PouchDB – 获取批处理

PouchDB – 获取批处理


您可以使用allDocs()方法从 PouchDB 中的数据库读取/检索多个/批量文档

句法

以下是使用PouchDBdb.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 为真,如下所示。

//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/index.html验证 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

这读取存在于名为my_database的数据库中的给定文档的内容,该数据库存储在 CouchDB 中,并显示在控制台上,如下所示。

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

觉得文章有用?

点个广告表达一下你的爱意吧 !😁