如何在CouchDB中结合show和list函数?

时间:2010-10-16 12:03:18

标签: javascript couchdb

我正在尝试学习CouchDB。有没有办法在show函数中使用列表函数,反之亦然?例如,我可以调用一些列表函数来在其show函数中呈现文档吗?或者如果列表函数中有id,则调用show(id)来呈现列表?

2 个答案:

答案 0 :(得分:1)

截至目前,我不相信有直接的方法可以这样做。

但是,您可以通过CommonJS modules重复使用代码(包括模板)。虽然您无法通过_list功能拨打_show,但您可以模拟相反的情况,并使用_show_list的相同模板/代码响应。

答案 1 :(得分:1)

我相信您要做的是将子实体与其父实体一起呈现。这可以通过让view以特定顺序将父级和子级传递给list函数来实现。

example中有一个The Definitive Guide用于具有多个父实体的场景,每个实体都有子实体。对于只有一个父项的简单情况,view可能会发出父实体,后跟其子项,list函数可能会出现以下行:

parent_entity = getRow();
/* ... make parent_repr ... */
send(parent_repr);
while (child_entity = getRow()) {
    /* ... make child_repr ... */
    send(child_repr);
}

因此,您不必为父级提供单独的show函数。