为什么这个 MapReduce 映射函数 emit 不起作用?
Why does this MapReduce mapping function emit not work?
我有一个 Cloudant 数据库,其中包含使用以下格式的文档:
{
"_id": "0ea1ac7d5ef28860abc7030444515c4c",
"_rev": "1-362058dda0b8680a818b38e9c68c5389",
"text": "text-data",
"time-data": 1452988105,
"time-text": "3:48 PM - 16 Jan 2016",
"link": "http://url/to/website"
}
我正在尝试创建一个视图以轻松计算开始和结束之间的文档数 time-data
。但是,此映射函数导致查询返回 "No Documents Found":
function (doc) {
emit(doc.time-data, 1);
}
...虽然这样做:
function (doc) {
emit(doc._id, 1);
}
为什么会这样?
问题出在您的字段名称上。它包含一个破折号:-
Javascript 解释为:
return doc.time - data
return doc.time minus data
您可以更改 属性(更改为 time_data
之类的内容),也可以像这样创建视图:
function (doc) {
if (doc['time-data']) {
emit(doc['time-data'], 1);
}
}
我有一个 Cloudant 数据库,其中包含使用以下格式的文档:
{
"_id": "0ea1ac7d5ef28860abc7030444515c4c",
"_rev": "1-362058dda0b8680a818b38e9c68c5389",
"text": "text-data",
"time-data": 1452988105,
"time-text": "3:48 PM - 16 Jan 2016",
"link": "http://url/to/website"
}
我正在尝试创建一个视图以轻松计算开始和结束之间的文档数 time-data
。但是,此映射函数导致查询返回 "No Documents Found":
function (doc) {
emit(doc.time-data, 1);
}
...虽然这样做:
function (doc) {
emit(doc._id, 1);
}
为什么会这样?
问题出在您的字段名称上。它包含一个破折号:-
Javascript 解释为:
return doc.time - data
return doc.time minus data
您可以更改 属性(更改为 time_data
之类的内容),也可以像这样创建视图:
function (doc) {
if (doc['time-data']) {
emit(doc['time-data'], 1);
}
}