【发布时间】:2023-03-23 13:07:01
【问题描述】:
有没有办法在 Mongoid 中过滤 map-reduce 操作的结果?我发现了一个可以在 MongoDB 上执行的“查询”函数,但在 Mongoid 中似乎没有映射。
我想获取该值大于 10 的所有用户的活动计数:
Activity.map_reduce(%{
emit(this.user_id, 1);
}, %{
function(key, values) {
return Array.sum(values);
}
}).out(inline: true).query(:'value.gt' => 10)
【问题讨论】:
-
查询在 map 和 reduce 运行之前过滤文档 - 这就是你想要的吗?
-
不,之后。我想过滤减少后的结果——就像我试图用上面的“查询”调用来说明的那样
-
您是否有理由不只使用聚合框架 - 与 map-reduce 相比,它更简单、更快。你用的是哪个版本的 Mongoid?