MongoDB - 聚合,按数组值分组

时间:2013-09-11 15:20:39

标签: mongodb aggregation-framework

我有以下文档结构:

{
    _id: ...,
    name: "Item1",
    Props: [
    {
        Key: "numberKey",
        Val: 1234
    },

    {
        Key: "dateKey",
        Val: Date("2013-09-09")
    }]
}

这是简化的,实际应用程序中的道具字段中可以有各种键和值。

我的问题 - 是否可以通过“dateKey”来$ group和$ sum“numberKey”?

如果不可能,我应该使用什么结构?我需要用户添加键和值,所以我需要一些灵活的东西。

1 个答案:

答案 0 :(得分:2)

不幸的是,使用模式聚合是不可能的。问题是聚合意味着对$ group子句选择的数组中的值进行操作,并且这些元素具有所需的所有数据。您的设置将您想要分组的内容和您想要总和的内容分开。您可以使用mapReduce作业来执行您的架构所需的操作。 http://docs.mongodb.org/manual/core/map-reduce/应该可以让你入门。

如果您有任何其他问题,请告诉我。

最佳, 查理