Couchdb,如何获得密钥中第二个元素的唯一列表?

时间:2013-01-25 15:50:16

标签: couchdb unique

我的观点如下:

对于给定的session值,我想检索type的唯一列表。

function (doc) {
 if (doc.sesion) {
    emit([doc.sesion, doc.type], doc);
 }
}

我该如何查询视图?我需要创建另一个视图吗?

我知道我应该使用include_docs而不是在视图中发出文档,但暂时不要担心。

2 个答案:

答案 0 :(得分:0)

这样做:

?startkey=["session_value",""]&endkey=["session_value",{}]

但是,重新格式化视图会更容易:

function (doc) {
 if (doc.sesion) {
    emit(doc.sesion, doc.type);
 }
}

按照你提到的查询:

?key="session_value"&include_docs=true

答案 1 :(得分:0)

要获取唯一的一组类型,您可以使用reduce,使用group=true查询视图而不使用group_level(或group_level=exact,请参阅view API)和如here所述startkey=["YOUR_SESSION"]&endkey=["YOUR_SESSION",{}]。请注意,这样您就无法使用include_docs,因为您只能将其与map一起使用(不包含reduce)。