CouchDB查看设计文档中的默认选项不起作用

时间:2014-07-27 14:48:02

标签: couchdb

问题很简单:我在CouchDB数据库的设计文档中编写了map函数,它发出了{"_id":doc._id}的内容。与include_docs=true查询选项一起,我将使用链接的文档获得所需的结果。由于map函数旨在与include_docs=true一起使用,因此我将此选项放在设计文档中并将其设为默认值:

{...
    "options":{"include_docs":true}
...}

但是,当我查询视图时,结果仍然是没有链接文档的结果,我需要在查询中明确指定选项。我还尝试将其他查询选项(例如limit=200)添加到设计文档中,它们也没有用。

我正在使用CouchDB 1.5,并且找不到任何有关此问题的讨论,问题或错误。有谁有想法吗?先谢谢!

编辑:我在Apache中报告了这个问题,我被告知有关此问题的声明已被删除。

1 个答案:

答案 0 :(得分:3)

_design/ddoc/options不能这样做。

根据couchdb's docs,设计文档的options对象属性仅影响视图索引,而不会影响查询。 (唯一的两个设置是local_seqinclude_design)。


_design/ddoc/rewrites可以!

如果要在服务器端设置查询选项,可以在设计文档中指定rewrites数组。

假设您要向_view/myview设置为include_docs的{​​{1}}公开查询,请将以下true数组添加到您的设计文档中:

rewrites

现在,当您在没有 { "_id": "_design/myddoc" , "views": { "myview": { "map": "function(doc) { ... }" } } , "rewrites": [ { "from": "allmyviews/myview" , "to": "_view/myview" , "query": { "include_docs": "true" } } ] } 参数的情况下请求http://localhost:5984/mydb/_design/myddoc/_rewrite/allmyviews/myview 时,couchdb会像您已将其包含在内一样进行回复。