sql >> データベース >  >> NoSQL >> MongoDB

Mongodb Aggregation Framework |複数の値をグループ化しますか?

    OK、解決策は_id値の集約キーを指定することです。これはここに次のように文書化されています:

    パイプライン内のドキュメントから単一のフィールド、以前に計算された値、または複数の入力フィールドで構成される集約キーを指定できます。

    ただし、実際には集約キーの形式を定義するものではありません。ここで以前のドキュメントを読むと、以前のcollection.groupメソッドが複数のフィールドを受け取る可能性があり、新しいフレームワークで同じ構造が使用されていることがわかりました。

    したがって、複数のフィールドをグループ化するには、_id : { success:'$success', responseCode:'$responseCode', label:'$label'}を使用できます。

    のように:

    resultsCollection.aggregate(
    { $match : { testid : testid} },
    { $skip : alreadyRead },
    { $project : {
            timeStamp : 1 ,
            label : 1,
            responseCode : 1 ,
            value : 1,
            success : 1
        }},
    { $group : {
            _id :  { success:'$success', responseCode:'$responseCode', label:'$label'},
            max_timeStamp : { $timeStamp : 1 },
            count_responseCode : { $sum : 1 },
            avg_value : { $sum : "$value" },
            count_success : { $sum : 1 }
        }}
    );
    



    1. $lookup演算子を使用した複数の結合条件

    2. fedora12のphpredis

    3. 500万を超えるレコードのパフォーマンスをクエリするMongoDB

    4. 他のluaスクリプトで定義されているlua関数をredisで呼び出すことは可能ですか?