2017-07-12 2 views
0

私はektropライブラリとライブラリのソースコードで利用できるすべてのブログを見てきました。get(class obj、String id)機能は利用可能ですが、この関数を使用すると、指定されたIDに従って1つのドキュメントのみが返されます。バケットにあるすべての変更されたドキュメントを読みたい。これを達成できますか。事前に感謝します。ektropライブラリを使用してcouchDB内のすべてのドキュメントを見つける方法

答えて

0

こんにちはすべて私は上記の質問から答えを得ています。ここでは、すべてのドキュメントを入手することができます。単に_changes APIの結果が使用されています。

  1. プロジェクトにEktorpライブラリを統合します。
  2. 次のコードを使用してすべてのドキュメントを取得します。

       HttpClient httpClient = new StdHttpClient.Builder() 
          .url("http://localhost:5984/") 
          .build(); 
        CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient); 
        CouchDbConnector db = new StdCouchDbConnector("my_database", dbInstance); 
        ChangesCommand.Builder builder = new ChangesCommand.Builder(); 
        ChangesCommand changesCommand =builder.build() ; 
        List<DocumentChange> documentChangeList=db.changes(changesCommand); 
    
        for(int i=0;i<documentChangeList.size()-1;i++) { 
         System.out.println(documentChangeList.get(i).getId()); 
        } 
    
+1

でより詳細な情報を見つけることができます。このコードを使用すると、「すべての変更」( '_changes')ではない「すべての文書」(' _all_docs')を取得します。ある意味では、第1セットは第2セットを含む。しかし、ドキュメントが更新されるほど、コードは効率的になりません。 –

+0

私の質問を更新していただきありがとうございます申し訳ありませんが間違いがありました。 –

2

おそらく_all_docsエンドポイントを探しています。

ViewQuery q = new ViewQuery().allDocs().includeDocs(true); 

List<Sofa> bulkLoaded = db.queryView(q, Sofa.class); 

あなたは注意してくださいapi

関連する問題