如何使用 java 从 couchbase 执行批处理 select 和更新文档?
How to perform batch select and update documents from cocuhbase using java?
能否告诉我使用 java 从 couchbase 批量获取和更新文档的最佳方法是什么?我可以使用 N1QL 吗?请推荐?
您可以使用 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();
}
能否告诉我使用 java 从 couchbase 批量获取和更新文档的最佳方法是什么?我可以使用 N1QL 吗?请推荐?
您可以使用 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();
}