📅  最后修改于: 2020-11-26 06:52:04             🧑  作者: Mango
您可以使用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('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'
}
}
]