【问题标题】:MongoDB MapReduce Stats EngineMongoDB MapReduce 统计引擎
【发布时间】:2011-05-10 12:04:22
【问题描述】:

我正在尝试为 MongoDB 系统开发一个通用报告引擎,该引擎将从一组文档中聚合信息。在查询运行之前我不会知道文档的结构。

例如一组文档可能如下所示:

{"drink": "Tea","accompaniments": ["Biscuits","Crisps"]}
{"drink": "Tea","accompaniments": ["Biscuits"]}
{"drink": "Coffee","accompaniments": ["Biscuits","Crisps"]}
{"drink": "Coffee","accompaniments": ["Nuts","Biscuits"]}
{"drink": "Beer","accompaniments": ["Nuts","Crisps"]}
{"drink": "Beer","accompaniments": ["Nuts"]}
{"drink": "Beer","accompaniments": ["Crisps"]}

在这里,我需要如下结果:

{drink:{Tea:2,Coffee:2,Beer:3},accompaniments:{biscuits:4,Crisps:4,Nuts:3}}

另一个文档集可能如下所示:

{"favcolor": "Red","shapes": ["Square","Circle"]}
{"favcolor": "Red","shapes": ["Square"]}
{"favcolor": "Green","shapes": ["Circle"]}

可能有多种不同的文档格式。

所以,我不能使用命名键对 map-reduce 函数进行“硬编码”。另外,请注意,我需要从嵌套数组和/或文档中获取信息 - 我可以控制文档的构建方式,因此,举个例子,如果需要,我可以将伴奏数组设为一组适当的嵌套文档(在本例中,它们是由多选复选框构建的)。

从每组文档中获取所有统计信息的最有效的 map-reduce 函数是什么?我真的希望会有“一个”map-reduce 能够从每个集合中获取数据。非常感谢。

【问题讨论】:

    标签: mongodb mapreduce mongodb-.net-driver


    【解决方案1】:

    我不确定我的概念,这只是一个想法。

    您的两个示例数据集具有共同的结构。两者都包含具有 to 属性的文档:一个具有字符串值,第二个是数组。因此,您的 map-reduce 应该遍历文档属性并检查特定属性的类型。然后根据类型和属性名进行聚合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多