模型签入:
checkin
_id
interest_id
author_id
我收集了签到(通过简单的“查找”查询解决) 我想计算每个兴趣的签到数量。 是什么让这项任务变得更加困难 - 我们应该将一个人和一个人的两张签到作为一个签到。
AFAIK,mongo中的组操作由map / reduce查询执行。我们应该在这里使用吗?我用这种方法得到的唯一想法是聚合每个兴趣的用户数组,然后返回这个数组的长度。
编辑我最终完全没有使用map / reduce,尽管Emily的回答很好,而且快。 我必须只选择最近60分钟的签到,结果不应该太多。所以我只是将它们全部转换为Ruby驱动程序,并在ruby端进行所有计算。它有点慢,但更具可扩展性和易于理解。
最好的, 罗马
答案 0 :(得分:1)
地图缩小可能是这样做的方法,你可以通过两个地图缩小来获得所需的结果。
在第一个中,您可以删除重复的author_id和interest_id对。
第二个map reduce只是给定author_id的checkins数量。