【发布时间】:2017-11-30 01:47:17
【问题描述】:
我正在使用 Cloudant 的 map reduce 功能,并且我想查找具有名称的特定用户(来自用户的输入)在某个日期范围内(来自用户的输入)参加了多少事件(事件对象的计数)。
我的文档如下所示。
{
user: {
name: 'peter pan'
},
startEventDateTime: <timestamp>,
endDateDateTime: <timestamp>,
events: [
{
name: 'La la land',
text: 'more info'
},
{
name: 'La la land',
text: 'more info'
}
]
}
上面的意思是,用户在开始和结束时间之间参加了 2 个活动。同一用户在不同日期范围内也有许多文档以及参加的活动列表。
如何在 Cloudant map reduce 中实现这一点?
我的尝试: 无法正确获取地图。我可以按名称过滤 地图:
function (doc) {
emit([doc.user, doc.events, startEventDateTime, endDateDateTime], doc)
}
减少:
function (keys, values, rereduce) {
if (rereduce) {
return sum(values);
} else {
return values.length;
}
}
【问题讨论】:
标签: javascript mapreduce nosql cloudant