假設,我的沙發資料庫中有 1000 條記錄。需要在 nodeJS 中獲取一條一條的記錄。
我正在嘗試獲取記錄但無法一一獲取
uj5u.com熱心網友回復:
OP 標簽包括兩者couchdb,couchbase哪些不一樣。我假設 CouchDB 是這個答案,所以couchdb-nano符合要求。
基本策略是從/{db}/_all_docs端點獲取第一個檔案,方法是使用引數將結果限制為一個檔案limit,然后利用start_key,limit和skip引數獲取下一個檔案。
例如,
const nano = require("nano")("http://user:pass@localhost:5984/");
const dbName = "stack";
// Do the thing
(async () => {
let processed = 0;
let total_docs = 0;
try {
const db = await nano.db.use(dbName);
let result = await db.list({ limit: 1 });
total_docs = result.total_rows;
while (result.rows.length) {
if (processDocument(result.rows[0])) {
processed ;
}
result = await db.list({ start_key: result.rows[0].key, limit: 1, skip: 1 });
}
} catch (err) {
console.error(err);
}
console.info(`\nProcessed ${processed} of ${total_docs} documents`);
})();
// Returns true of the document was processed, false if skipped.
function processDocument(doc) {
if (doc.key.startsWith("_design/")) {
return false;
}
console.log(doc.key);
return true;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/442284.html
下一篇:如何解決這個npmi問題?
