我有一个MongoDB集合,其中的文档格式如下:
{
year: 1900,
alabama: 145,
arkansas: 103,
// ... for all 50 US states
}
我想要一个查询,给出每个州的集合总和 . 所以结果可能如下:
{
alabama: 1360492,
arkansas: 598023,
// ... and so on
}
我能想到的最好的是一个包含50个术语的聚合查询:
db.sample.aggregate({$group: {
_id: "",
alabama: {$sum: "$alabama"},
arkansas: {$sum: "$arkansas"},
// ... and so on
}});
有没有办法构建允许我只提供需要求和的字段名称数组的查询?
1 回答
我不知道使用聚合框架的方法,但使用mapreduce,它是相当直接的;
编辑:为了能够使用聚合框架,我看不到一种方法,只是稍微改变数据模型,以便能够作为一个键访问状态;