我将 Couchbase Java SDK 2.2.6 与 Couchbase 服务器 4.1 一起使用。
我使用以下代码查询我的视图
public <T> List<T> findDocuments(ViewQuery query, String bucketAlias, Class<T> clazz) {
// We specifically set reduce false and include docs to retrieve docs
query.reduce(false).includeDocs();
log.debug("Find all documents, query = {}", decode(query));
return getBucket(bucketAlias)
.query(query)
.allRows()
.stream()
.map(row -> fromJsonDocument(row.document(), clazz))
.collect(Collectors.toList());
}
private static <A> A fromJsonDocument(JsonDocument saved, Class<A> clazz) {
log.debug("Retrieved json document -> {}", saved);
A object = fromJson(saved.content(), clazz);
return object;
}
在该fromJsonDocument
方法的日志中,我看到行并不总是按行键排序。通常它们是,但有时它们不是。
如果我只是在浏览器 couchbase GUI 中运行此查询,我总是会按预期顺序收到结果。使用异步客户端查询时视图查询结果未排序是错误还是预期?不同客户端的行为是什么,而不是 java?