模型签入:
checkin
_id
interest_id
author_id
我有一个签入的集合(通过简单的"查找"查询解决)我想计算一下每个兴趣的签到次数。让任务变得有点困难的是——我们应该把一个人的两次签到和一次兴趣算作一次签到。
AFAIK,mongo中的组操作是通过map/reduce查询执行的。我们应该在这里使用它吗?我对这种方法的唯一想法是聚合每个兴趣的用户数组,然后返回这个数组的长度。
EDIT我最终根本没有使用map/reduce,尽管Emily的回答很好&快的我只需要从最后60分钟中选择签入,结果不应该太多。所以我只需要把所有这些都拿到Ruby驱动程序中,然后在Ruby端进行所有的计算。它有点慢,但更易于扩展和理解。
最好,罗马
Map reduce可能是实现这一目标的方法,并且您可以通过两次Map reduces获得所需的结果。
在第一种方法中,可以删除重复的author_id和interest_id对。
- 密钥为author_id和interest_id
- 值将是checkin_id
第二个map reduce将只是给定author_id的签入次数的计数。
- 密钥应该是author_id
- 值将是checkin_id计数