0

次の情報を含むドキュメント:

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

都市の名前を表示するにはどうすればよいですか。これは正しいです:

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

のみを返しますnull。「ベルモント」という名前が見たかった。どんな助けでも大歓迎です。

4

1 に答える 1

1

あなたのデータでは、は配列であるため、プロパティaddressはありません。City

データに住所が 1 つしかない場合:

{
  "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 に答える