原始问题低于双栏。 这是一个更新,我希望得到更多的帮助。
嗨,
我终于积极回来了。 在过去的一年里,我曾多次优先考虑这个项目。 我为甚至没有评论你的回答而道歉,这真的给了我希望。
我有一个更清洁的方法,并且我相信取得了一些进展。 我现在在数据库中有大约1900个文档。 每个文档都有一个"类型"键。 我已经制作了30个设计文档,每个"类型#34;每个都有一个名为" all"返回该类型文档的所有行。
所以,现在我可以在浏览器中执行这样的GET:
dasvm01.com:5984/registryservice/_design/airplaneidtypes/_view/all
我的直接目标是将其缩短为:
dasvm01.com:5984/registryservice/airplaneidtypes
或
dasvm01.com:5984/registryservice/airplaneidtypes/all
为此,我在airplaneidtypes设计文档中添加了一个重写函数:
{
"_id": "_design/airplaneidtypes",
"_rev": "11-c28b41a718017cbcd65f82f4acc611cb",
"views": {
"all": {
"map": "function (doc)
{ if(doc.ddoc === 'airplaneidtypes')
{ emit(doc._rev,doc); }
}"
}
},
"language": "javascript",
"rewrites": [
{
"from": "/airplaneidtypes",
"to": "registryservice/_design/airplaneidtypes/_rewrite",
"method": "GET"
}
]
}
现在我认为我需要更新CouchDB守护进程:vhosts设置: 我对它采取了一个裂缝,但我真的没有信心,它似乎没有工作/ 在Fauxton,我有:
daemons
auth_cache {couch_auth_cache, start_link, []}
...
vhosts {dasvm01.com:5984, /registryservice/_design/airplaneidtypes/_rewrite, []}
不确定是否: - 关, - 离开, - 不是正确的地方, - 只需要报价......
你能告诉我什么? 我不理解Fauxton默认值中的符号:
vhosts
Virtual hosts manager. Provides dynamic add of vhosts without restart, wildcards support and dynamic routing via pattern matching
[daemons]
vhosts={couch_httpd_vhost, start_link, []}
=============================================== =================
我正在努力让(任何)重写工作。我在这里和其他网站上看了很多例子。我试图模仿解决方案,但没有成功。某种程度的混乱起作用,因为我在我的观点中传递了两个论点。但基于我在这里看到的例子[10.5.11。 / db / _design / design-doc / _rewrite / path 1这不应该是一个问题。
我有这个观点:
{"dataProvider": {
"map": "function(doc) {
if(doc.dataProvider && doc.status) {
emit([doc.dataProvider, doc.status], doc);
}
}"
}
}
当我点击此网址时,视图效果正常:
" // ddpspc28:8080 / data_providers / _design /基本/ _view / dataProvider中键= [" TBC-ACT""不稳定"]"
我想重写一下,以便URL看起来像这样:
" // ddpspc28:8080 / data_providers / dataProvider中键= [" TBC-ACT""不稳定"]"
目前返回:{"错误":" not_found","原因":"缺少"}
为了做到这一点,我创建了一个名为"重写"的字段。在我的设计文档" _design / basic"对于我的数据库" data_providers"。在重写的价值中我有这个:
"[
{ "from":"/dataProvider",
"to": "_view/dataProvider"
}
]”
我也试过这个:
“[
{ "from":"/dataProvider",
"to": "_design/basic/_view/dataProvider"
}
]”
我也试过这个:
“[
{ "from":"dataProvider",
"to": "/_design/basic/_view/dataProvider"
}
]”
我怀疑我可能还需要一个"查询"重写的组件,但我很高兴在这一点上只需要重写#34; dataProvider"以及随后的任何内容,并使用完全限定的路径替换dataProvider。
答案 0 :(得分:0)
在_design/basic
文档中定义的重写,可在以下位置访问:
//ddpspc28:8080/data_providers/_design/basic/_rewrite
。
因此,您的第一次和最后一次尝试都应该有效,但是可以通过以下方式访问它们:
//ddpspc28:8080/data_providers/_design/basic/_rewrite/dataProvider
除非您将它们与virtual hosts合并,否则重写不会非常有用(减少网址大小)。与虚拟主机结合使用可以是集中API的好方法。
我通常会添加一个没有视图的设计文档(称为api
),这些视图会重写为其他设计文档'观点等。