我们有几个map-reduce作业在调度程序上运行并为我们聚合一些计数。我们想将这些转换为实时聚合调用。问题是,map-reduce的所有无限灵活性为它运行的集合统计了4个不同的计数。比如:
var result =
{
MessageId: this.MessageId,
Date: this.Created,
Queued : (this.Status == 0 ? 1 : 0),
Sent : (this.Status == 1 ? 1 : 0),
Failed : (this.Status == 2 ? 1 : 0),
Total : 1,
Unsubscribes: 0
};
如果我在SQL中,我认为我不能用一个GROUP BY / SUM来解决这个问题,因为我需要为每个SUM使用不同的过滤器。是否有可能在mongo中,或者我是否需要使用不同的$ match子句运行4个单独的$ group语句?