2016-09-13 10 views
0

javafxでApache CouchDB、特にFUTONインタフェースでCouchBaseLiteを使用しています。私は現在、フィルタ機能の動作、Apache CouchDB javafxでフィルタリングされた複製

{"orgId": 
"function(docu, req) { 
    if(docu.orgId == req.query.orgId && docu.doc == req.query.doc) 
     return true; 
    else 
     return false; 
}"} 

私は現在実行してフィルタを設定していますが、持っているドキュメント#はドキュメントタイプです

Map<String, Object> params = new HashMap<>(); 
Map<String, Object> params2 = new HashMap<>(); 
Map<String, Object> params3 = new HashMap<>(); 
Map<String, Object> params4 = new HashMap<>(); 

params.put("orgId", 0); 
params.put("doc", "doc1"); 
params2.put("orgId", 0); 
params2.put("doc", "doc2"); 
params3.put("orgId", 0); 
params3.put("doc", "doc3"); 
params4.put("orgId", 0); 
params4.put("doc", "doc4"); 

pullDoc1.setFilterParams(params); 
pullDoc2.setFilterParams(params2); 
pullDoc3.setFilterParams(params3); 
pullDoc4.setFilterParams(params4); 

pullDoc1.start(); 
pullDoc2.start(); 
pullDoc3.start(); 
pullDoc4.start(); 

。 pullDoc#はプルレプリケーションです。

ArrayListまたはString of Listsをパラメータとして使用して、各docタイプに対して4つの個別のプルレプリケーションを使用する方法があるのだろうかと思いました。

だから私の質問は、パラメータとして文字列のArrayListのか、リストを使用して活用する方法はあり

  1. あるおさらいするには?
  2. 私のフィルタ関数のjavascriptはどのように見えますか?
  3. 私のjavafxコードはどのように見えますか?

ありがとうございます。

+0

特定のorgIdを持ち、docプロパティが[1,2,3、....、n]のいずれかの値に等しいすべてのドキュメントを(フィルタで)プルしようとしていますか? –

+0

正確に。今私は4つの別々のプルレプリケーションを使用してこれを達成していますが、実際には1つだけを使用します。 –

答えて

0

説明したように、コードを更新して、多くの文書値でフィルタ関数を使用できるようにしました。 params

//We create our param associated array 
    Map<String, Object> params = new HashMap<>(); 
    //Here can pu the orgId. This is a single value 
    params.put("orgId", 0); 

    //Here we send an array of doc that we want to get. 
    params.put("docs", new String[]{"doc1", "doc2", "doc3", "doc4"}); 

ため

フィルタ機能

function(docu, req) { 
    if (docu.orgId == req.query.orgId && docu.doc != null && req.query.docs.indexOf(docu.doc) > -1) 
     return true; 
    else 
     return false; 
} 

Javaコードあなたが他の質問がある場合は、お気軽に。

+0

これはうまくいった!ありがとう、私はindexOfを使って適切な文書であることを確認することさえ考えなかった。 –

関連する問題