【发布时间】:2013-03-18 12:14:49
【问题描述】:
我想通过UserAgent聚合:
db.reports.aggregate(
{
$group: {
_id: '$UserAgent',
docsPerUserAgent: {
$sum : 1
}
}
}
)
上面的查询将考虑到 整个 UserAgent 字符串。我想做的是计算包含 Android(选项 A)、iPhone/iPad(选项 B)和其余(选项 C)的那些。如何将 keyf 函数提供给聚合框架(类似于此 - How to group by specifying a function to fetch a key? 但在聚合框架的上下文中)?
【问题讨论】:
-
目前,除了 substr 之外,没有用于将一段字符串分组的投影,它不会满足您的需求。通常,最好的方法是将用户代理存储在您需要分组的部分中
-
如果是这样,为什么不将其作为答案分享(我会批准)?
-
如果您提供了一个示例文档,它可能有助于提出实现相同目标的不同方法。
-
UserAgent是一个可能包含 Android、iPhone*/*iPad 等的字段。我想group by使用它投影。
标签: mongodb aggregation-framework