0

我浏览了所有可用于 ektrop 库的博客以及该库的源代码。我发现get(class obj,String id)函数可用,但如果我使用此函数,则只会返回一个文档到给定的ID。所以我想阅读存储桶中所有已更改的文档。我怎样才能实现这一点。提前感谢任何帮助。

4

2 回答 2

3

您可能正在寻找 _all_docs 端点。

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

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

您可以在api中找到更详细的信息

于 2017-07-13T00:09:30.903 回答
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());
        }
    
于 2017-07-12T13:29:10.520 回答