2017-09-09 4 views
0

私はクラウドデータベースを使用しており、の特定のフィールドと一致するすべてのドキュメントを取得したいと考えています。 私は、特定の値を持つフィールドがいくつかあるドキュメントだけを取得したいと思っています。クラウド - 特定の条件/フィールドに一致するすべてのドキュメントを取得

テストできるコードの例を教えてください。 ありがとうございます

答えて

1

良い、しかし非常に一般的な質問です。

これはいくつかの方法で実現できます。あなたはCloudantダッシュボードを使用してこのようなビューを作成することができます

function (doc) { 
    if (doc && doc.surname) { 
     emit(doc.surname, 1); 
    } 
} 

:最も標準的なのCouchDBの方法により、たとえば、上の照会できるようにしたいフィールドをキーマップ-削減ビュー(セカンダリインデックス)を作成することです:Creating a view in the Cloudant dashboard

あなたは今、特定の姓を持つすべての文書のためにこれを照会できます。

curl 'https://ACCOUNT.cloudant.com/examples/_design/example/_view/by_surname?limit=100&reduce=false&include_docs=true&startkey="kruger"&endkey="kruger0"' 

あなたはフィールドの組み合わせに照会することができるようにしたい場合は、ベクトル値のキーを作成することができます

を別称、

curl 'https://ACCOUNT.cloudant.com/examples/_design/example/_view/by_name?limit=100&reduce=false&include_docs=true&startkey=\["kruger", "stefan"\]&endkey=\["kruger","stefan0"\]' 

あなたはCloudantに新しいしている場合は、クエリへの別の方法は、適切な名前Cloudantクエリを使用することです(このよう照会され

function (doc) { 
    if (doc && doc.surname && doc.firstname) { 
     emit([doc.surname, doc.firstname], 1); 
    } 
} 

マンゴー)は、jsonベースの宣言型クエリ言語です。

それは十分に立証されて(https://console.bluemix.net/docs/services/Cloudant/api/cloudant_query.html)が、それの要旨は、タイプのクエリです:

{ 
"selector": { 
    "year": { 
     "$gt": 2010 
    } 
}, 
"fields": ["_id", "_rev", "year", "title"], 
"sort": [{"year": "asc"}], 
"limit": 10, 
"skip": 0 
} 
関連する問題