mongodb高級特性aggregate,aggregate類似stream的處理方式,數(shù)據(jù)經(jīng)過多級處理,最終輸出處理后數(shù)據(jù)集

1. 統(tǒng)計符合條件的數(shù)組數(shù)據(jù)個數(shù)
db.getCollection('customer').aggregate(
[{"$match":{"serverId":"0001214","$records":{"$gt":0}}}, ?#過濾器 ?,對原始數(shù)據(jù)過濾
{"$unwind":"$records"}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#將records數(shù)據(jù)字段平鋪展開
{"$group":{"_id":0,"count":{"$sum":1}}} ? ? ? ? ? ? ? ? ? ? ? ? ? ? #統(tǒng)數(shù)量
])
2. 統(tǒng)計重復(fù)數(shù)據(jù)
db.getCollection('customer').aggregate([
{"$match":{"serverId":"0001214"}}, ? ? ? ? ? ? ? ? ? ? ?#過濾器
{"$group":{phone:"$phone","count":{"$sum":1}}}, #計算手機數(shù)??
{"$match":{ count : { $gt : 1} }} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#過濾手機數(shù)>1的信息
])