通过属性查询Cloudant,而不是使用Angular和PHP

时间:2017-07-17 21:35:19

标签: php angularjs couchdb cloudant

我正在使用Angular,PHP和Cloudant构建应用程序。

现在我只是查询所有文档,然后使用Angular处理/过滤/显示数据,但我觉得当文档数量增加时,这将接近糟糕的做法。

考虑到当前代码,我如何通过文档属性查询而不是获取所有文档?

角度代码:

var $promisedbex=$http.get('databaseconnect/getalldiscovery.php'); 

$promisedbex.then(function (data) {
    $scope.dataex = [];
    $scope.dataex = data.data.rows;
    console.log($scope.dataex);
});

PHP代码:

<?php
    $url = "https://user:pass@user.cloudant.com/discovery/_all_docs?include_docs=true";
    $ch = curl_init();   // initialize curl handle
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    $output = curl_exec($ch);

    $info = curl_getinfo($ch);
    curl_close($ch);
?>

文件示例:

{
  "_id": "1339ede5175888cb31e7f96aabd296bf",
  "_rev": "1-7dc3fd24ce2a3846fcbae0e47daab829",
  "fair": "Koelner Liste",
  "fairyear": "2017"
}

我如何通过fair查询?

1 个答案:

答案 0 :(得分:0)

尝试创建使用fair作为关键字的视图。这将使您能够使用此键作为基础来限制和/或排序结果。 map函数可能如下所示:

function (doc) {
    emit(doc.fair, null);
}

从视图中提取数据时,仍然使用include_docs参数,并考虑使用startkeyendkey进行过滤。