我正在尝试创建一个视图,以对数组中的特定属性进行分组。但是,下面的map函数不会返回任何结果。
JSON文档结构:
{
"jsontype": "survey_response",
"jsoninstance": "xyz",
"jsonlanguage": "en_us",
"jsonuser": "test@test.com",
"jsoncontact": "test@mayoclinic.com",
"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]);
}
答案 0 :(得分:1)
看起来你在emit语句的末尾写了一个拼写错误:
doc.pages[0].q-answer-placeholder,q-answer-localized
。
而应将q-answer-localized
更改为doc.pages[0].q-answer-localized
。
此外,您似乎已在emit语句中将字段定义为q-localized
,但实际上根据您发布的示例文档实际应该是q:localized
,我认为这是文档片段中的错误而不是emit语句,但如果没有,则还需要修改。
我认为这样的错误会在视图引擎的map-reduce错误日志中被标记,以后你应该检查这个日志,这样你就可以自己调试这样的错误。
中找到mapreduce_errors
日志的位置