使用用户首选项数据进行聚合
最后更新于
最后更新于
在本页面
考虑一个假设的体育俱乐部,其数据库包含一个users
集合,用于跟踪用户的加入日期,运动偏好,并将这些数据存储在类似于以下内容的文档中:
以下操作以大写和字母 order 返回用户名。聚合包括users
集合中所有文档的用户名。您可以这样做以规范化用户名以进行处理。
users
集合中的所有文档都通过管道传递,该管道包含以下操作:
创建一个名为name
的新字段。
operator 按name
字段对结果进行排序。
聚合的结果类似于以下内容:
以下聚合操作返回按其加入的月份排序的用户名。这种聚合可以帮助生成会员续订通知。
管道通过以下操作传递users
集合中的所有文档:
创建两个新字段:month_joined
和name
。
该操作返回类似于以下内容的结果:
以下操作显示了一年中每个月加入的人数。您可以将此汇总数据用于招聘和营销策略。
管道通过以下操作传递users
集合中的所有文档:
_id
,包含带有month_joined
字段及其 value 的嵌套文档。
此聚合操作的结果类似于以下内容:
以下聚合收集数据集中前五个最“喜欢”的活动。这种分析有助于规划和未来发展。
管道从users
集合中的所有文档开始,并通过以下操作传递这些文档:
[success] 例子
给出来自用户集合的以下文档:
$unwind
运算符将创建下列文件:
_id
,其中包含likes
value。
聚合的结果类似于以下内容:
译者:李冠飞
校对:李冠飞
操作:
使用 operator 将_id
的 value 转换为大写。然后创建一个名为name
的新字段来保存此 value。
抑制id
字段。除非明确禁止,否则将默认通过_id
字段。
operator:
从结果中抑制id
。除非明确禁止,否则方法包含_id
。
operator 将joined
字段的值转换为月份的 integer 表示。然后 operator 将这些值分配给month_joined
字段。
operator 按month_joined
字段对结果进行排序。
operator 创建一个名为month_joined
的新字段。
operator 将joined
字段的值转换为月份的 integer 表示。然后 operator 将值分配给month_joined
字段。
operator 收集具有给定month_joined
value 的所有文档,并计算该 value 的文档数量。具体来说,对于每个唯一 value,创建一个包含两个字段的新“per-month”文档:
number
,这是一个生成的字段。对于包含给定month_joined
value 的每个文档, operator 将此字段递增 1。
operator 根据month_joined
字段的内容对创建的文档进行排序。
operator 分隔likes
array 中的每个 value,并为 array 中的每个元素创建源文档的新 version。
operator 收集likes
字段具有相同 value 的所有文档,并计算每个分组。有了这些信息,创建了一个包含两个字段的新文档:
number
,这是一个生成的字段。对于包含给定likes
value 的每个文档, operator 将此字段递增 1。
operator 按字段在 reverse order 中对这些文档进行排序。
operator 仅包含前 5 个结果文档。