显示pouchdb中的总行数

时间:2017-02-23 08:18:43

标签: pouchdb

我在pouchdb中有一些数据,我想在pouchdb中显示总行数,我该怎么办?

angular.module("pouchapp", ["ui.router"])

.run(function($pouchDB) {
    $pouchDB.setDatabase("dbinfo");
    //console.log($pouchDB.length); //show total rows in pouchdb   
});

.service("$pouchDB", ["$rootScope", "$q", function($rootScope, $q) {
    var database;

    this.setDatabase = function(databaseName) {
        database = new PouchDB(databaseName);
    }
}]);

2 个答案:

答案 0 :(得分:5)

使用promises和allDocs函数,获取文档的数量在Typescript中可能如下所示。我假设$pouchDB变量保存了您的PouchDB。

$pouchDB.allDocs().then(entries => console.log(entries.rows.length));

带回调的普通JavaScript解决方案可能如下所示:

$pouchDB.allDocs(function(err, response) {
    if (err) { return console.log(err); }
    console.log(response.rows.length);
});

注意:有关allDocs功能的详细信息,请参阅docs

如果您确实想要获取文档,请确保使用allDocs参数调用include_docs函数。默认情况下,您只会获得_id_rev属性,而不是整个文档。

实际上获取所有文档可能如下所示:

$pouchDB.allDocs({
  include_docs: true
}).then(entries => console.log(entries));

答案 1 :(得分:2)

@Phonolog建议使用allDocs(),但我建议使用info(),因为这样做开销较小,并且速度更快。

$pouchDB.info().then(info => console.log(info.doc_count))