11

没有关键参数,视图可以正常工作

$curl "http://127.0.0.1:5984/music/_design/albums/_view/by_release_date"

{"total_rows":311,"offset":0,"rows":[
{"id":"a4327d0718d3b1e227df7124a99a7fc3","key":"1991-12-22","value":{"by":"张楚","title":"黑月亮"}},
{"id":"a4327d0718d3b1e227df7124a99a3ac5","key":"unknown","value":{"by":"郑钧","title":"郑钧:赤裸裸"}},

但是当使用密钥时,我得到了错误的请求响应或空结果。为什么?

$curl "http://127.0.0.1:5984/music/_design/albums/_view/by_release_date?key=unknown" {"error":"bad_request","re​​ason":"invalid_json"}

$curl "http://127.0.0.1:5984/music/_design/albums/_view/by_release_date?key=1993" {"total_rows":311,"offset":0,"rows":[

]}

地图功能是:

map
function(doc) {
  key = doc.release_date
  value = {by: doc.author , title: doc.title}
  emit(key, value);
}
4

3 回答 3

36

键是一个字符串,因此您需要包含"= %22,例如http://127.0.0.1:5984/music/_design/albums/_view/by_release_date?key=%221993%22

于 2013-11-10T09:15:10.253 回答
1

我猜您正在尝试查询键范围。尝试指定startkeyand endkey

http://127.0.0.1:5984/music/_design/albums/_view/by_release_date?startkey=1993&endkey=1993z

更多细节:http ://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

于 2013-11-10T13:37:16.373 回答
0

这是我如何处理它

let serverURL = "SERVER_IP:5984"
let dd_name = 'email' // for example
let viewname = "by_email" // for example

const findDocByEmail = email => {
  let url = `${serverURL}/_design/${dd_name}/_view/${viewname}?key="${email}"`
  fetch(url, {
    method: 'GET',
    mode: "no-cors",
    headers:{
      'Content-Type': 'application/json',
      'Authorization': 'Basic ' + btoa('COUCH_USER:SECRET'), // you can remove this if not needed,
    }
  })
  .then(res => {
    return res.json()
  })
  .then(response => console.log('Response: ', response))
  .catch(error =>  console.log(error))

}
于 2019-02-02T23:30:34.347 回答