如何只获取文档的最新版本

时间:2014-01-30 09:54:58

标签: java couchdb ektorp

我是CouchDb / ektorp的新手。根据ektorp文档,您可以通过以下注释生成couchdb视图:

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

有没有办法只获取每个文档的最新修订,而不是id而是另一个属性? < - 不是特定于java的

如果可能的话,只能获得一个不是id的doc,而是另一个来自该视图的属性? < - ektorp / java

Thakns

2 个答案:

答案 0 :(得分:1)

  

有没有办法只获得每个文档的最新修订?

除非您要求进行特定修订,否则Couch始终会为您提供最新版本:

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

的java类

答案 1 :(得分:1)

如另一个答案中所述,如果您没有明确指定修订版,您将始终获得具有最新修订版的文档。

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