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またはその初期フィールド値を作成することを意味します。$inc11

viewsPerAuthor : { $sum : "$pageViews" }

pageViewsこのグループ内のすべてのドキュメントについて、この特定のグループに一致するドキュメントのフィールドを合計することを意味します。

基本的には次と同じです。

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