标签:java mongodb bigdata aggregation-framework mapreduce
我有一个名为’event’的集合,它跟踪移动应用程序中的事件.
事件文件的结构是
{
eventName:"eventA",
screenName:"HomeScreen",
timeStamp: NumberLong("135698658"),
tracInfo:
{
...,
"userId":"user1",
"sessionId":"123cdasd2123",
...
}
}
我想创建报告以显示特定的渠道:
例如:
漏斗是:event1 – > event2 – > EVENT3
我想找到的数量:
> event1
> event1然后是event2
> event1然后是event2,然后是event3
并且会议也被认为是在单个会话中发生的.
注意:只是想清楚,我希望能够创建我定义的任何漏斗,并能够为它创建报告.
谢谢..
解决方法:
您的解决方案可能围绕这样的聚合:
db.event.aggregate([
{ $group: { _id: '$tracInfo.sessionId', events: { $push: '$eventName' } } }
])
每个生成的文档都包含sessionId和eventNames列表.根据需要将其他字段添加到$group结果中.我想在检测你想要的序列中的逻辑是非常多毛的,所以你可以考虑将结果保存到一个不同的集合中,你可以随意检查. 2.6仅为此类场合提供了新的$out
operator.
标签:java,mongodb,bigdata,aggregation-framework,mapreduce 来源: https://codeday.me/bug/20190703/1364868.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。