2017-07-17 6 views
0

Angular、PHP、Cloudantを使用してアプリケーションを構築しています。AngularとPHPですべてのドキュメントを取得するのではなく、プロパティでCloudantをクエリする

現在、すべてのドキュメントを照会し、角度を使用してデータを処理/フィルタリング/表示するだけですが、ドキュメントの量が増えたときに悪い習慣に近づくと感じています。

現在のコードを考慮すると、すべてのドキュメントを取得するのではなく、ドキュメントプロパティでどのようにクエリできますか?

角度コード:

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:[email protected]/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); 
?> 

ドキュメントの例:私は、例えばfairで問い合わせることができどのよう

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

+1

照会するプロパティーを発行するビューを作成する必要があります。ビューをどのように扱うかGoogleを見てください。 CouchDB 2.0を使用している場合は、索引を作成し、Mango Query Selectors(MongoDBに似た問合せ言語ですが、ビューよりも柔軟性があります)を使用できます。 –

答えて

0

fairをキーとするビューを作成してみてください。これにより、このキーを基に結果を制限および/または並べ替えることができます。

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

ビューからデータを取得、まだinclude_docsパラメータを使用し、neeededとしてフィルタリングするstartkeyendkeyを使用しても検討してください。マップ機能は、次のようになります。

関連する問題