使用PouchDB访问Ionic2应用程序中的map / reduce结果

时间:2017-03-30 14:33:56

标签: ionic2 couchdb pouchdb

我在Ionic 2应用程序上使用PouchDB,该应用程序与我在AWS上的CouchDB同步。

我在蒲团中创建了一个设计文档,如果我转到http://my-ip-address:5984/wardround_jobs/_design/teams/_view/teams,这很有效 - 我可以看到我的设计中使用的map / reduce输出的JSON。

我现在正试图弄清楚如何在我的应用中访问它。

我从这开始 - 它给了我所有文件:

return new Promise(resolve => {

    this.db.allDocs({
    include_docs: true

    }).then((result) => {
        console.log(result);
    }).catch((error) => {
        console.log(error);
    }); 

});

然后我可以修改这个以获取一个特定的文件:

return new Promise(resolve => {

    this.db.get('0448071807c0f37f53e06aab54034a42').then((result) => {
        console.log(result);
    }).catch((error) => {
        console.log(error);
    }); 

});

但是如果我尝试使用此代码返回我的设计视图,那么我会收到错误:

return new Promise(resolve => {

    this.db.get('_design/teams/_view/teams').then((result) => {
        console.log(result);
    }).catch((error) => {
        console.log(error);
    }); 

});

错误是:

CustomPouchError {
    status: 404, 
    name: "not_found",
    message: "missing", 
    error: true, 
    reason: "missing"
}

如何在我的应用中访问地图/缩小的结果?

编辑 - 在Alexis的帮助下,我得到了这个工作......

return new Promise(resolve => {

    this.db.get('teams/teams').then((result) => {
        console.log(result);
    }).catch((error) => {
        console.log(error);
    }); 

});

1 个答案:

答案 0 :(得分:2)

要从任何map / reduce设计文档中获取结果,您需要使用query()函数。