Couchbase View не возвращает значение массива

Я пытаюсь создать представление для группировки по определенному атрибуту внутри массива. Однако приведенная ниже функция карты не возвращает никакого результата.

Структура документа JSON:

{
   "jsontype": "survey_response",
   "jsoninstance": "xyz",
   "jsonlanguage": "en_us",
   "jsonuser": "[email protected]",
   "jsoncontact": "[email protected]",
   "pages": [
       {
           q-placeholder": "q1-p1",
           q:localized": "q1-localized-p1",
           q-answer-placeholder": "jawaabu121",
           q-answer-localized": "localized jawaabu1"
       },
       {
           q-placeholder": "q2-p2",
           q:localized": "q2-localized-p2",
           q-answer-placeholder": "jawaabu221",
           q-answer-localized": "localized jawaabu2"
       },
       {
           "q-placeholder": "q3-p3",
           "q:localized": "q3-localized-p3",
           "q-answer-placeholder": "jawaabu313",
           "q-answer-localized": "localized jawaabu3"
       }
   ]
}

Функция карты:

function(doc, meta){
emit(doc.jsoninstance,[doc.pages[0].q-placeholder, doc.pages[0].q-localized,doc.pages[0].q-answer-placeholder,q-answer-localized]);
}


person modek    schedule 25.01.2016    source источник


Ответы (1)


Похоже, вы допустили опечатку в конце оператора emit: doc.pages[0].q-answer-placeholder,q-answer-localized.

Вместо этого q-answer-localized следует изменить на doc.pages[0].q-answer-localized.

В дополнение к этому кажется, что вы определили поле как q-localized в своем операторе emit, но на самом деле, согласно образцу документа, который вы опубликовали, это должно быть q:localized, я предполагаю, что это была ошибка во фрагменте документа, а не выдать заявление, но если нет, то также необходимо внести поправки.

Я бы предположил, что такие ошибки будут отмечены в журнале ошибок map-reduce механизма просмотра, в будущем вам следует проверять этот журнал, чтобы вы могли самостоятельно отлаживать такие ошибки.

Расположение журнала mapreduce_errors можно найти в документации Couchbase

person Matt Carabine    schedule 26.01.2016