- 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://: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'
}
}
]