Couchdb 如何基于变量列出文档?

Couchdb 如何基于变量列出文档?,couchdb,Couchdb,我的用例是: 用户填写一个表单,创建一个存储了用户名的文档 他转到某个URL,它应该列出他创建的所有文档 通过谷歌搜索和阅读文档,我得到了简单的设计文档和视图,但我不知道如何给它一个变量并基于它进行筛选(在这种情况下,是用户名)。 我在我的视图中看到过过滤函数并写过这篇文章,但它似乎不适合我要做的事情(而且无论如何都不起作用,结果是空白): 我只是在网上找不到解决方案,因为所有网站都只关注超级简单的静态示例,完全避免这种情况 我最接近的解决方案是每个用户有一个DB,但我的应用程序也应该有一个

我的用例是:

  • 用户填写一个表单,创建一个存储了用户名的文档
  • 他转到某个URL,它应该列出他创建的所有文档
通过谷歌搜索和阅读文档,我得到了简单的设计文档和视图,但我不知道如何给它一个变量并基于它进行筛选(在这种情况下,是用户名)。
我在我的视图中看到过过滤函数并写过这篇文章,但它似乎不适合我要做的事情(而且无论如何都不起作用,结果是空白):

我只是在网上找不到解决方案,因为所有网站都只关注超级简单的静态示例,完全避免这种情况


我最接近的解决方案是每个用户有一个DB,但我的应用程序也应该有一个管理员视图,列出每个用户的文档并与他们交互。

你不能给视图变量

将视图视为一个数据库索引:它们是一个静态生成的文档索引,基于在每个记录和
emits()上运行的JS块

您的示例代码看起来更像一个过滤器,而不是一个视图。您一定要从头到尾阅读《视图指南》:

但基本上你要找的是这样的东西:

function(doc) {
    emit(doc.where.the.author.name.is);
}
然后,在查询视图时,将作者的姓名作为键传递给视图:

yourdb/_design/yourddoc/_view/yourview?key=authorname

这只是一个例子,请阅读上面的链接,因为视图是CouchDB的一个核心概念,应该被很好地理解。

从我的回答来看,更一般地说,听起来您肯定应该更全面地阅读文档。刚开始的时候会让人困惑,但我认为在进一步研究之前,您需要弄清楚过滤器和视图之间的区别:-)
yourdb/_design/yourddoc/_view/yourview?key=authorname