Couchbase 视图过滤有问题
Having trouble with Couchbase view filtering
我正在使用 spring-data-couchbase,我正在尝试为 findAll()
查询创建一个支持视图。我创建了一个名为 ClusterCodeXref
的文档和一个名为 allClusterCodeXrefs
的视图,与我的模型 class 相匹配。我需要根据调用过滤 class(我说的对吗?),因为这个桶也将用于其他应用程序。
我的模型是这样的:
package com.company.aad.xref.model;
@Document
public class ClusterCodeXref implements Serializable {
private static final long serialVersionUID = 3072475211055736282L;
@Id
String id;
@Field("SET_NUM")
String setNum;
...
}
这是存储库 class:
@Repository
public interface ClusterCodeXrefRepository
extends CrudRepository<ClusterCodeXref, String> {
@View
List<ClusterCodeXref> findAllClusterCodeXrefs();
}
这是我的观点:
function (doc, meta) {
if (doc._class == "com.company.aad.xref.model.ClusterCodeXref") {
emit(meta.id, null);
}
}
但是当我运行 findAllClusterCodeXrefs()
查询时,没有返回任何行。如果我去掉 if 语句,我会得到我期望的一切。我做错了什么?
显然 _class
字段不会自动添加到导入的数据中。我需要手动将 _class
添加到我的数据集(我从 CSV 文件导入)。
可以通过注解指定自动为该文档生成视图和主索引,如下:
@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "clusterCodeXref")
@Repository
public interface ClusterCodeXrefRepository extends CrudRepository<ClusterCodeXref, String> {
@View
List<ClusterCodeXref> findAllClusterCodeXrefs();
}
我在这里回答了一个非常相似的问题
我正在使用 spring-data-couchbase,我正在尝试为 findAll()
查询创建一个支持视图。我创建了一个名为 ClusterCodeXref
的文档和一个名为 allClusterCodeXrefs
的视图,与我的模型 class 相匹配。我需要根据调用过滤 class(我说的对吗?),因为这个桶也将用于其他应用程序。
我的模型是这样的:
package com.company.aad.xref.model;
@Document
public class ClusterCodeXref implements Serializable {
private static final long serialVersionUID = 3072475211055736282L;
@Id
String id;
@Field("SET_NUM")
String setNum;
...
}
这是存储库 class:
@Repository
public interface ClusterCodeXrefRepository
extends CrudRepository<ClusterCodeXref, String> {
@View
List<ClusterCodeXref> findAllClusterCodeXrefs();
}
这是我的观点:
function (doc, meta) {
if (doc._class == "com.company.aad.xref.model.ClusterCodeXref") {
emit(meta.id, null);
}
}
但是当我运行 findAllClusterCodeXrefs()
查询时,没有返回任何行。如果我去掉 if 语句,我会得到我期望的一切。我做错了什么?
显然 _class
字段不会自动添加到导入的数据中。我需要手动将 _class
添加到我的数据集(我从 CSV 文件导入)。
可以通过注解指定自动为该文档生成视图和主索引,如下:
@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "clusterCodeXref")
@Repository
public interface ClusterCodeXrefRepository extends CrudRepository<ClusterCodeXref, String> {
@View
List<ClusterCodeXref> findAllClusterCodeXrefs();
}
我在这里回答了一个非常相似的问题