首页 > 解决方案 > 如何使用 java 从 cocuhbase 执行批量选择和更新文档?

问题描述

您能否让我知道使用 java 从 cocuhbase 批量获取和更新文档的最佳方法是什么?我可以使用 N1QL 吗?请建议?

标签: couchbase

解决方案


您可以使用 RXJava 进行批处理

public List<JsonDocument> bulkGet(final Collection<String> ids) {
return Observable
    .from(ids)
    .flatMap(new Func1<String, Observable<JsonDocument>>() {
        @Override
        public Observable<JsonDocument> call(String id) {
            return bucket.async().get(id);
        }
    })
    .toList()
    .toBlocking()
    .single();
}



public void updateDocuments(Collection<JsonDocument> documents) {
    Observable.from(documents).flatMap(new Func1<JsonDocument, Observable<JsonDocument>>() {
        @Override
        public Observable<JsonDocument> call(final JsonDocument docToInsert) {
            return bucket.async().upsert(docToInsert);
        }
    }).last().toBlocking().single();
}

推荐阅读