- PouchDB 教程
- PouchDB - 首页
- PouchDB - 概述
- PouchDB - 环境配置
- PouchDB - 创建数据库
- PouchDB - 数据库信息
- PouchDB - 删除数据库
- PouchDB - 创建文档
- PouchDB - 读取文档
- PouchDB - 更新文档
- PouchDB - 删除文档
- PouchDB - 批量创建
- PouchDB - 批量获取
- PouchDB - 批量更新
- PouchDB - 批量删除
- PouchDB - 添加附件
- PouchDB - 获取附件
- PouchDB - 删除附件
- PouchDB - 复制
- PouchDB - 同步
- PouchDB - 其他
- PouchDB 有用资源
- PouchDB - 快速指南
- PouchDB - 有用资源
- PouchDB - 讨论
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/index.html验证CouchDB中的数据库列表,您将看到以下屏幕截图。
以下是如何读取存储在CouchDB服务器中名为my_database的数据库中存在的全部文档的示例。
//Requiring the package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('https://127.0.0.1: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' } } ]