我试图从受NYC MUG/SimpleReach模式启发的实时度量系统中提取报告数据,也许我的思想仍然停留在 SQL 模式中。
数据存储在这样的文档中......
{
"_id": ObjectId("5209683b915288435894cb8b"),
"account_id": 922,
"project_id": 22492,
"stats": {
    "2009": {
        "04": {
            "17": {
                "10": {
                    "sum": {
                        "impressions": 11
                    }
                },
                "11": {
                    "sum": {
                        "impressions": 603
                    }
                },
             },
         },
     },
 }}
我一直在尝试聚合管道的不同变体,但没有成功。
db.metrics.aggregate({
$match: {
    'project_id':22492
}}, {
$group: {
    _id: "$project_id",
    'impressions': {
         //This works, but doesn't sum up the data...
         $sum: '$stats.2009.04.17.10.sum.impressions'
         /* none of these work.
         $sum: ['$stats.2009.04.17.10.sum.impressions',          
              '$stats.2009.04.17.11.sum.impressions']
         $sum: {'$stats.2009.04.17.10.sum.impressions',          
              '$stats.2009.04.17.11.sum.impressions'}
        $sum: '$stats.2009.04.17.10.sum.impressions',          
              '$stats.2009.04.17.11.sum.impressions'
        */
    }
}
任何帮助,将不胜感激。
(ps。有人对如何使用此文档架构进行日期范围搜索有任何想法吗?)