2017-12-20 10 views
0

私のドキュメントには、特定のケースのテンプレートまたは監査で、各タイプの目的に基づいてドキュメントタイプが分離されたdocypeというプロパティがあります。しかし、私は次の操作を実行します。それらのCouchbase Liteのプロパティでデータを取り出す方法は?

document.getProperty("docType").equals("template"); 
document.getProperty("docType").equals("audit"); 

を結果は常に同じで、それは、DOCTYPEによってそれらをフィルタリングすることなく、すべての文書が保存されたすべての時間を返します。

以下、クエリ機能を確認することができます。

public static Query getData(Database database, final String type) { 
    View view = database.getView("data"); 
    if (view.getMap() == null) { 
     view.setMap(new Mapper() { 
      @Override 
      public void map(Map<String, Object> document, Emitter emitter) { 
       if(String.valueOf(document.get("docType")).equals(type)){ 
        emitter.emit(document.get("_id"), null); 
       } 
      } 
     }, "4"); 
    } 
    return view.createQuery(); 
} 

任意のヒント?

答えて

0

これは有効な方法ではありません。ビュー関数は純粋でなければなりません( "type"のような外部状態を参照することはできません)。それが作成されると、開始と終了のキーを設定するか、または一般的な一連のキーだけをフィルタリングすることで、必要なものをクエリできます。

関連する問題