我需要学习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"
不产生输出,只是将我发送到下一个命令提示符。我尝试过使用不同类型密钥的各种示例,并遇到了同样的问题。
对我所做错的任何见解都将不胜感激。
谢谢,诺埃尔
答案 0 :(得分:1)
Cheeso是对的,您必须对您的值进行URL编码,而不仅仅是"
s,还有其他字符。实际上,将curl
替换为echo
,以查看shell在完成处理后真正传递给curl的内容。
FWIW,我想我们大多数人都会在浏览器中点击我们的阅读查询,例如点击视图 - 所以所有的网址编码都会为我们处理。