0

2 つのクエリを定義したいのですが、mongoDB の例にもかかわらず、その方法がよくわかりません。

クエリ 1:

SELECT COUNT(*), SUM(PKTS), SUM(BYTES) FROM mytable

クエリ 2:

SELECT srcad, srcpo, dstad, dstpo, pro, COUNT(*), SUM(PKTS), SUM(BYTES) FROM mytable WHERE scrpo=80 OR dstpo=80 GROUP BY srcad, scrpo, dstad, dstpo, pro

よろしく

4

1 に答える 1

1

最初の場合、集計クエリは次のようになります。

db.mytable.aggregate({$group:{_id:1, sump:{$sum:"$pkts"}, sumb:{$sum:"$bytes"} }});

2 番目のものについても同じことを行いますが、where 句の代わりに $match フェーズを追加し、複数のフィールドでグループ化します。

db.mytable.aggregate([ 
   {$match:{$or:[{scrpo:80},{dstpo:80}]} },
   {$group:{_id :  {srcad:"$srcad",scrpo:"$scrpo",
                    dstad:"$dstad",dstpo:"$dstpo",pro:"$pro"},
            sump:{$sum:"$pkts"}, 
            sumb:{$sum:"$bytes"} 
    }}
]);
于 2013-03-20T04:09:22.950 に答える