Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 直列视图定义数据库Ektorp_Java_Spring_Nosql_Couchdb_Ektorp - Fatal编程技术网

Java 直列视图定义数据库Ektorp

Java 直列视图定义数据库Ektorp,java,spring,nosql,couchdb,ektorp,Java,Spring,Nosql,Couchdb,Ektorp,我在Spring 3中使用带Ektorp的沙发DB。我阅读了文档,并尝试实现示例。我对这些技术非常陌生。这是我不明白的一点: @View( name = "all", map = "function(doc) { if (doc.type == 'Sofa' ) emit( null, doc._id )}") public class SofaRepository extends CouchDbRepositorySupport<Sofa> { @View( name =

我在Spring 3中使用带Ektorp的沙发DB。我阅读了文档,并尝试实现示例。我对这些技术非常陌生。这是我不明白的一点:

@View( name = "all", map = "function(doc) { if (doc.type == 'Sofa' ) emit( null, doc._id )}")
public class SofaRepository extends CouchDbRepositorySupport<Sofa> {

    @View( name = "avg_sofa_size", map = "function(doc) {...}", reduce = "function(doc) {...}")
    public int getAverageSofaSize() {
        ViewResult r = db.queryView(createQuery("avg_sofa_size"));
        return r.getRows().get(0).getValueAsInt();
    }

}
@View(name=“all”,map=“函数(doc){if(doc.type==“Sofa”)emit(null,doc.\u id)}”)
公共类SofaRepository扩展了couchdbrepository支持{
@查看(name=“avg\u sofa\u size”,map=“function(doc){…}”,reduce=“function(doc){…}”)
public int getAverageSofaSize(){
ViewResult r=db.queryView(createQuery(“平均大小”);
返回r.getRows().get(0.getValueAsInt();
}
}

WIEV如何工作以及如何定义它们,在这些行上会发生什么?

CouchDbRepositorySupport
开箱即用为SofaRepository提供了以下方法:

公共作废添加(Sofa实体);
公共空间更新(Sofa实体);
公共空间移除(Sofa实体);
公共沙发获取(字符串id);
公共沙发get(字符串id、字符串版本);
公共列表getAll();
公共布尔包含(字符串docId);
通过将此内联视图注释用于
CouchDbRepositorySupport

@View(name=“all”,map=“函数(doc){if(doc.type==“Sofa”)emit(null,doc.\u id)}”)
您可以从
getAll()
方法重新定义返回

您还将另一个方法
getAverageSofaSize()
添加到您的存储库中,使用内联视图:

@View(name=“avg\u sofa\u size”,map=“function(doc){…}”,reduce=“function(doc){…}”)
它显式地提供了一个
query
db.queryView(createQuery(“avg_sofa_size”)下标<代码>数据库
这是一个可以创建、删除、清除、查找等的数据库


请查看有关

的更多文档,谢谢您的解释,我已经知道了。你能解释一下视图函数是如何工作的吗,比如emit方法?当然
emit
相当于map/reduce中的
map
,它只是映射出以后可能要缩减的所有值/范围/数据。在这个[first function]示例中,它
发出
s(将其视为
返回
)类型为=='Sofa'的所有文档。你可以阅读更多关于它的文章