使用key,startkey时,CouchDB视图抛出了无效的UTF-8 JSON错误

Jim*_*ton 16 json curl couchdb

我在CouchDB中定义了一个非常基本的视图:

function(doc) {
  if(doc.date && doc.erc) {
    emit(doc.date, doc.erc);
  }
}
Run Code Online (Sandbox Code Playgroud)

它只是按日期提取所有文件和排序.

我试过追加

?startkey="2010-05-01"
Run Code Online (Sandbox Code Playgroud)

到URL和Futon只是浏览器重定向.

我也尝试过使用CURL:

curl -X GET http://localhost:5984/plots/_design/by_date/_view/by_date?startkey="2010-05-01"
Run Code Online (Sandbox Code Playgroud)

这引发了一个错误:

{"error":"bad_request","reason":"invalid UTF-8 JSON"}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?这应该是一个非常基本的事情.

谢谢,-Jim

Jas*_*ith 28

CouchDB需要查看双引号.

Bash可能在curl跑步前吃掉双引号.将URL(双引号和全部)放在单引号中.

curl -X GET 'http://localhost:5984/plots/_design/by_date/_view/by_date?startkey="2010-05-01"'
Run Code Online (Sandbox Code Playgroud)

这样,Bash将发送引号curl,将它们发送到CouchDB.

可能Firefox或Futon也在吃你的报价.被褥的右上方有一个灰色指针图标.这链接到视图的原始URL.尝试添加startkey那里.您也可以输入双引号%22.


小智 5

我不知道你是否已经得到了解决方案..无论如何对于像我这样遇到同样错误的观众。这就是解决方案。我在 Windows 中尝试过

curl -X GET http://localhost:5984/plots/_design/by_date/_view/by_date?startkey=\"2010-05-01\"
Run Code Online (Sandbox Code Playgroud)