Couchbase 视图是空的

Couchbase View is empty

如果我尝试通过使用 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);
  }
}

并具有以下名称:

我可能做错了什么?

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

好吧,看了this blog entry终于找到解决办法了。问题是 .from 方法的第一个参数:必须避免使用 _design/dev_ 前缀。所以不是调用

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

我必须使用

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

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