0

在以下示例(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 的总和”吗?

4

1 回答 1

0

让我们一点一点地过一遍:

docsPerAuthor : { $sum : 1 },

意味着为该组中的每个文档(每个作者)创建一个新字段docsPerAuthor,并$inc通过1或创建其初始字段值1

viewsPerAuthor : { $sum : "$pageViews" }

意味着对于该组中的每个文档,汇总pageViews与该特定组匹配的文档的字段。

它与以下内容基本相同:

SELECT COUNT(*) as docsPerAuthor, SUM(pageViews) AS viewsPerAuthor 
       FROM article GROUP BY author
于 2013-03-18T14:20:29.107 回答