Aggregation Framework: 

 MongoDB - 2 随笔

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

$project:

a document stream by renaming, adding, or removing fields 

#alter Data
db[:zips].find.aggregate([{:$project => {:_id=> 1, :city=> {:$toLower => '$city'}}}]).each {|r| pp r}

 

$group: 

db[:zips].find.aggregate([{:$group => {:_id => '$state', :population => {:$sum => '$pop'}}}]).each {|r| pp r}

#max 
db[:zips].find.aggregate([{:$group => {:_id => '$state', :max_zip=> {:$max=> '$pop'}}}]).each {|r| pp r}

#min 
db[:zips].find.aggregate([{:$group => {:_id => '$state', :min_zip=> {:$min=> '$pop'}}}]).each {|r| pp r}

#push - return array of all values... 
db[:zips].find.aggregate([{:$group => {:_id => '$state', :zips=> {:$push=> '$_id'}}}]).each {|r| pp r}

#addToSet - return array of all value no duplicate 
db[:zips].find.aggregate([{:$group => {:_id => '$state', :zips=> {:$addToSet=> '$_id'}}}]).each {|r| pp r}

 

$match:

 

$unwind:

#unwind return one document 

db[:zips].find().aggregate([{:$match => {:city=>'ELMIRA'},group=>{:_id=>{:city=>'$city',:state=>'$state'},:zips=>{:addToSet=>'$_id'}}},{:$unwind=>'$zips'}]).each {|r| pp r}

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄