无法使视图参数在couchdb中工作

时间:2012-06-29 01:23:14

标签: view parameters couchdb

我需要学习couchbd并且一直在阅读有关视图的教程。我从概念上理解它们,但实际上我在查询视图时无法有效地提供视图参数。我尽我所能遵循示例中的语法。所以我有以下简单的设计文档:

{"_id":"_design/simple","_rev":"1-0391fe242d8b6045da1984283287f91c","views":{"foo":{"map":"function(doc) { if(doc.date && doc.title) {emit(doc.date, doc.title);}}"}}}

我可以在没有任何视图参数的情况下查询视图foo,并获得以下结果:

curl http://127.0.0.1:5984/viewtester/_design/simple/_view/foo

产生

{"total_rows":3,"offset":0,"rows":[
{"id":"hello-world","key":"2009/01/15 15:52:20","value":"Hello World"},
{"id":"biking","key":"2009/01/30 18:04:11","value":"Biking"},
{"id":"bought-a-cat","key":"2009/02/17 21:13:39","value":"Bought a Cat"}
]}

但是添加一个view参数似乎不起作用:

curl http://127.0.0.1:5984/viewtester/_design/simple/_view/foo?key="2009/01/15 15:52:20"

不产生输出,只是将我发送到下一个命令提示符。我尝试过使用不同类型密钥的各种示例,并遇到了同样的问题。

对我所做错的任何见解都将不胜感激。

谢谢,诺埃尔

1 个答案:

答案 0 :(得分:1)

Cheeso是对的,您必须对您的值进行URL编码,而不仅仅是" s,还有其他字符。实际上,将curl替换为echo,以查看shell在完成处理后真正传递给curl的内容。

FWIW,我想我们大多数人都会在浏览器中点击我们的阅读查询,例如点击视图 - 所以所有的网址编码都会为我们处理。