0

在包含以下信息的文档中:

{
  "address": [{
    "Street": "123 xyz", 
    "City": "Belmont"
  }]
}

如何查看城市名称。这个对吗:

function(doc) {
  emit(doc.address.City,null);
}

它只返回null. 我想看看“贝尔蒙特”这个名字。任何帮助都将不胜感激。

4

1 回答 1

1

在您的数据中,address是一个数组,因此它没有City属性。

如果您的数据中只有一个地址:

{
  "address": {
    "Street": "123 xyz", 
    "City": "Belmont"
  }
}

获取/{database}/_design/{ddoc}/_view/{view}应该返回:

{"rows":[
  {"key":"Belmont", "id":"{id}", "value":null}
]}

作为旁注,请注意,您还可以获得/{database}/_design/{ddoc}/_view/{view}?include_docs=true

{"rows":[
  {"key":"Belmont", "id":"{id}", "value":null, "doc":{
    "address": {
      "Street": "123 xyz", 
      "City": "Belmont"
    }
  }}
]}

最后但同样重要的是,如果您的数据中确实需要多个地址,您可以将它们全部发送:

function(o) {
  for each (var a in o.address) {
    emit(a.City);
  }
}
于 2014-02-21T05:18:09.270 回答