我正在尝试创建一个重写规则,用一个以字符串开头的键来读取视图。
我可以在没有重写的情况下做到这一点,但我正在努力用重写来做。
curl -g -H "Accept: application/json" \
'http://127.0.0.3:80/bookmarks/_design/design/_view/webmarks-by-url?include_docs=true&reduce=false&startkey=["www.sciencemuseum.org.uk"]&endkey=["www.sciencemuseum.org.uk/\ufff0"]' | json_pp
{
"from": "bookmarks_by_url/:~name:",
"to": "_view/webmarks-by-url",
"query": {
"reduce": "false",
"include_docs": "true",
"descending" : "false",
"startkey": [":~name:"],
"endkey": [":~name:\ufff0"]
}
},
我想要什么,但这显然无法奏效。有没有办法说这是一个变量的结束?或者另一种写规则的方式?
{
"from": "bookmarks_by_url/:~name:",
"to": "_view/webmarks-by-url",
"query": {
"reduce": "false",
"include_docs": "true",
"descending" : "false",
"startkey": [":~name:"],
"endkey": [":~name:" + "\ufff0"]
}
},
重写规则的文档非常糟糕,如果您知道更好的文档,请链接。
答案 0 :(得分:0)
如果您使用Couch 2.1+,您可以使用JS rewrites来使用纯JS函数进行请求路由。
包含.rewrites
部分,包含路由器功能的字符串表示,您可以处理非常复杂的路由。此外,您甚至可以直接从重写功能提供响应。
然而,使用JS重写你也有所有JS查询服务器处罚。他们是:
由于我个人大量使用JS重写,我可以说专业人士比利弊重得多。 There is an article包含与JS重写相关的一些性能细节。