在以下示例(http://docs.mongodb.org/manual/reference/aggregation/group/#_S_group)中有一个源示例:
db.article.aggregate(
{ $group : {
_id : "$author",
docsPerAuthor : { $sum : 1 }, // here goes the question
viewsPerAuthor : { $sum : "$pageViews" }
}}
);
我的问题是:什么 1
实际上是指(哪个字段)?可以用什么来代替呢?比如可以是$author
吗?
而且,在一般情况下-我应该如何"阅读"这:viewsPerAuthor : { $sum : "$pageViews" }
-它是"viewsPerAuthor是pageViews的总和"?
让我们一点一点地过一遍:
docsPerAuthor : { $sum : 1 },
表示对于该组中的每个文档(每个作者)创建一个名为docsPerAuthor
的新字段,并将$inc
改为1
或将其初始字段值设置为1
。
viewsPerAuthor : { $sum : "$pageViews" }
表示对该组中的每个文档求和与该特定组匹配的文档的pageViews
字段。
基本等同于:
SELECT COUNT(*) as docsPerAuthor, SUM(pageViews) AS viewsPerAuthor
FROM article GROUP BY author