0

如果我尝试通过使用 Java SDK 的视图从 Couchbase 服务器检索文档列表,我会得到一个空的结果列表:

ViewResult result = dataManager.getBucket().query(ViewQuery.from("_design/dev_task", "byID"));
List<ViewRow> rows = result.allRows(); // rows is empty

但是,在 Web 控制台中,相同的视图有一个非空的过滤结果列表。另一方面,按文档 ID 进行检索则完美无缺:

JsonDocument taskDocument = dataManager.getBucket().get("task1", JsonDocument.class);
// taskDocument contains the document for task1

查询定义为:

function (doc, meta) {
  if (typeof(doc.taskID) == "number") {
    emit(doc.taskID, doc);
  }
}

并具有以下名称:

在此处输入图像描述

我可能做错了什么?

4

2 回答 2

1

你发表观点了吗?我猜测 SDK 正在生产模式下运行,因此文档检索将在文档存在时工作,但对于视图,它不会在开发视图中查看,如上面的屏幕截图所示。

于 2015-04-08T12:24:37.193 回答
0

好的,我在阅读了这篇博文后终于找到了解决方案。问题是.from方法的第一个参数:_design/dev_必须避免前缀。所以而不是打电话

ViewQuery.from("_design/dev_task", "byID")

我必须使用

ViewQuery.from("task", "byID")

这给我留下了一个非空的行数组!

于 2015-04-10T10:30:48.103 回答