mongoDB分组依据/不同查询
型号签入:mongoDB分组依据/不同查询,mongodb,mapreduce,mongoid,Mongodb,Mapreduce,Mongoid,型号签入: checkin _id interest_id author_id 我有一组签入(通过简单的“查找”查询解决) 我想数一数每种兴趣的签到次数。 是什么让任务变得有点困难?我们应该将一个人的两次签入和一个兴趣视为一次签入 另外,mongo中的组操作是通过map/reduce查询执行的。我们应该在这里用吗?我对这种方法的唯一想法是为每个兴趣聚合用户数组,然后返回该数组的长度 编辑尽管艾米丽的回答很好很快,但我最终还是没有使用map/reduce。 我必须只选择过去60分钟的
checkin
_id
interest_id
author_id
我有一组签入(通过简单的“查找”查询解决)
我想数一数每种兴趣的签到次数。
是什么让任务变得有点困难?我们应该将一个人的两次签入和一个兴趣视为一次签入
另外,mongo中的组操作是通过map/reduce查询执行的。我们应该在这里用吗?我对这种方法的唯一想法是为每个兴趣聚合用户数组,然后返回该数组的长度
编辑尽管艾米丽的回答很好很快,但我最终还是没有使用map/reduce。
我必须只选择过去60分钟的签入,并且不会有太多的结果。所以我把它们都放到Ruby驱动程序中,然后在Ruby端进行计算。它有点慢,但更具可扩展性,更易于理解
最好的,
Roman地图缩小可能是实现这一点的方法,您可以使用两个地图缩小来获得所需的结果 首先,您可以删除重复的author\u id和interest\u id对
- 关键是作者id和兴趣id
- 值将是签入id
- 密钥将是author\u id
- 值将是签入id计数