2014-01-30 41 views
0

我是CouchDb/ektorp的新手。据爱克托文档,您可以通过生成这样的注释CouchDB的观点:如何获取文档的最新版本

@View(name = "avg_sofa_size", map = "function(doc) {...}", reduce = "function(doc) {...}") 

有没有办法让每个只有文档的最新修订时,不是由ID,但另一个属性? < - 不是java特定的

如果可能只得到一个文件不是由id,但从该视图的另一个属性? < - EKTORP/JAVA

Thakns

回答

1

有没有办法让每个只有文档的最新修订时?

沙发总是给你最新的修改,除非你要求一个特定的版本:

GET http://localhost:5984/mydb/doc-123 

返回的最新版本中的doc-123

GET http://localhost:5984/mydb/doc-123?rev=946B7D1C 

返回doc-的特定修订123。 (修正版仅在冲突解决时保留,在压缩过程中删除,不复制,因此您不一定要指望它们在那里)

并且如果可能只从id获得一个文档该视图

如果您只是想通过id获取文档,则不需要使用视图。看起来你想要做这样的事情与EKTORP:

Sofa sofa = db.get(Sofa.class, id, rev); 

哪里Sofa是延伸CouchDbDocument

+0

感谢您的回答,但我知道可以这样做。但在这两种情况下,我都需要关于id或rev的知识。所以如果我没有这些东西,而且我用CouchDBSupportRepository这个独特的名字来查询,我总是会得到一个具有该名称的文档的修订列表。 – Tarken

+0

我不知道CouchDBSupportRepository做了什么,但是当你查询一个视图时,你会找回一个文档列表,而不是一个修订列表。 –

1

正如在其他的答案说的Java类,你总是会得到与最新的版本,如果文档你不明确指定修订。

Sofa sofa = db.get(Sofa.class, id);