У меня есть данные участника гонки в некоторых документах, упорядоченных по этапу гонки, положению бегуна и времени прохождения бегуна через этап.
Мне нужно найти конкретный нагрудник (? Ключ = 357 ) и захватить последний раз, когда он прошел этап (do c .bib_data [i] .time), на каком этапе он был (id) и положение (i).
Если я укажу конкретный индекс массива bib_data, я получу результаты, но если я пропущу oop через bib_data, я не получу никаких результатов, даже если я ничего не фильтрую.
ПРОСМОТР с указанным c индексом, чтобы показать, как выглядят данные документа:
function (doc, meta) {
emit(doc.bib_data[2].bib,doc.bib_data[2].time);
}
РЕЗУЛЬТАТ:
{
"id": "007",
"key": "357",
"value": "1910:38",
"doc": {
"_id": "007",
"_rev": "4-bdce057c8ad2ce975b9ffca9eb9dfd82",
"ew_ham": "KM6WKA",
"stage_ew_ham": "KK6DA",
"bib_data": {
"1": {
"bib": "45",
"time": "1910:35"
},
"2": {
"bib": "357",
"time": "1910:38"
},
"3": {
"bib": "22",
"time": "1910:40"
}
}
}
}
Как получить результаты ТОЛЬКО для " нагрудник: 357 "?
Мне нужно собрать сцену, позицию и время, т.е. [" 007 "," 2 "," 1910: 38 "]
"2": {
"bib": "357",
"time": "1910:38"
},
Вот мой текущий QUERY:
http://[IP_ADDR]:5984/[DB_NAME]/_design/[DESIGN_DOC]/_view/[VIEW_NAME]?key=123
И мой ВИД, который пытается l oop через bib_data:
function (doc, meta) {
for(i=0;i<doc.bib_data.length;i++) {
if(doc.bib_data[i].bib) {
emit( i, doc.bib_data[i].bib, doc.bib_data[i].time );
}
}
}
, который не возвращает результатов.