2013-03-19 49 views
0

我想定義兩個querys但儘管MongoDB的例子我真的不知道/瞭解如何做到這一點:定義的MongoDB Querys

查詢1:

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

QUERY2:

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 

Regards

回答

1

對於第一個,聚合查詢將是:

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

爲你做同樣的第二人,但你通過多個字段添加$相匹配,而不是在where子句和你組:

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"} 
    }} 
]);