您可以使用 allDocs()方法从PouchDB中的数据库中读取/检索多个/批量文档.
以下是使用PouchDB的 db.allDocs()方法的语法.此方法接受可选的回调函数.
db.allDocs()
以下是使用 db.allDocs()<检索本地存储的名为 my_database 的数据库中的所有文档的示例/b>方法.此方法以对象的形式检索文档数组,以获取您需要调用的每个文档的内容 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/index.html 验证CouchDB中的数据库列表,您将获得以下屏幕截图.
以下是读取存在的所有文档的示例名为 my_database 的数据库,存储在CouchDB服务器中.
//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' } } ]