Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 什么是;1“;在群组聚合中说什么?_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 什么是;1“;在群组聚合中说什么?

Mongodb 什么是;1“;在群组聚合中说什么?,mongodb,aggregation-framework,Mongodb,Aggregation Framework,在以下示例()中,有一个源示例: db.article.aggregate( { $group : { _id : "$author", docsPerAuthor : { $sum : 1 }, // here goes the question viewsPerAuthor : { $sum : "$pageViews" } }} ); 我的问题是:1实际上指的是什么(哪个字段)?可以写什么?例如,它可以是$author 一般

在以下示例()中,有一个源示例:

db.article.aggregate(
    { $group : {
        _id : "$author",
        docsPerAuthor : { $sum : 1 }, // here goes the question
        viewsPerAuthor : { $sum : "$pageViews" }
    }}
);
我的问题是:
1
实际上指的是什么(哪个字段)?可以写什么?例如,它可以是
$author


一般来说,我应该如何“阅读”这个:
viewsPerAuthor:{$sum:$pageViews}
-是不是“viewsPerAuthor是一个页面视图的总和”?

让我们一点一点地看一下:

docsPerAuthor : { $sum : 1 },
这意味着,对于该组中的每个文档(每个作者),创建一个名为
docsperautor
的新字段,并通过
1
创建
$inc
或创建其初始字段值
1

viewsPerAuthor : { $sum : "$pageViews" }
表示此组中的每个文档汇总与此特定组匹配的文档的
pageViews
字段

这基本上与:

SELECT COUNT(*) as docsPerAuthor, SUM(pageViews) AS viewsPerAuthor 
       FROM article GROUP BY author

如果未设置字段,则表示$inc by one或从一开始。如果是,则下一行中的
$pageViews
是什么意思?这令人困惑。这意味着对名为
pageViews
的字段的总数进行汇总,因此您可以对字段进行汇总,也可以只计算该字段在组中聚合的次数,或者在SQL
中选择count(*)作为docsperautor,sum(pageViews)作为作者文章组中的viewsPerAuthor
我认为最好将此线程列为答案-我会批准它:)