2013-03-19 37 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"} 
    }} 
]);