我正在使用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
查询?
答案 0 :(得分:0)
尝试创建使用fair
作为关键字的视图。这将使您能够使用此键作为基础来限制和/或排序结果。 map函数可能如下所示:
function (doc) {
emit(doc.fair, null);
}
从视图中提取数据时,仍然使用include_docs
参数,并考虑使用startkey
和endkey
进行过滤。