获取 couchdb 中所有视图名称的列表

Posted

技术标签:

【中文标题】获取 couchdb 中所有视图名称的列表【英文标题】:get list of all view names in couchdb 【发布时间】:2014-05-27 07:12:50 【问题描述】:

是否可以使用 [dscape/nano][1] 获取 couchdb 中数据库的所有视图的列表?我可以通过 curl 请求获得的最接近的是:

http://URL/DBNAME/_all_docs?key=_design/views&include_docs=true.

以上返回所有视图,包括 javascript 函数。但我只想提取视图名称。

【问题讨论】:

【参考方案1】:

在较新的 CouchDB 版本中,您可以使用“_design_docs”来仅列出视图:

GET /dbname/_design_docs

与您必须浏览所有文档 (_all_docs) 相比,这将使您更快地获得想要的列表。

参见官方文档的1.3.3. /db/_design_docs。

注意:截至今天的文档指出这是 CouchDB 2.2 版中的新功能,但我在 2.1 上成功测试了它。

【讨论】:

【参考方案2】:

不幸的是,这样做的唯一可能方法是从您在问题中包含的查询结果中提取视图名称。 Futon 在填充视图下拉列表时就是这样做的,所以我认为可以肯定地假设这是唯一的解决方案。

您可能还希望将查询更改为以下内容以包含所有设计文档,而不仅仅是名为 views 的文档:

GET /dbname/_all_docs?startkey="_design/"&endkey="_design0"&include_docs=true

【讨论】:

感谢亚瑟。我只是在尝试使用 nano 中的等效查询,这是可能的。我稍后会发布代码。我已经实施了您建议的更改。

以上是关于获取 couchdb 中所有视图名称的列表的主要内容,如果未能解决你的问题,请参考以下文章

列出 CouchDB 中的所有 CouchApp?

CouchDB - CouchApp 的任何替代品?

CouchDb - 防止 couchDb 提供视图

CouchDB 视图 - 列表功能性能受到影响?

如何获取 couchdb 中键的值

导出couchdb某个数据库的所有表格名称