Couchdb документ / функция
В документе указана следующая информация:
{
"address": [{
"Street": "123 xyz",
"City": "Belmont"
}]
}
Как я могу просмотреть названия городов. Это правильно:
function(doc) {
emit(doc.address.City,null);
}
Возвращается только null
, Я хотел увидеть имя "Белмонт". Любая помощь с оценкой.
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);
}
}