mongodb 聚合语句

mongodb 聚合语句语法示例

db.collection名.aggreate([
    
    # 关联查询
    {'$lookup':{
        from:'待被join的collection名',
        localField: '本collection的feild',
        foreignField:'待被join的collection的外键名'as:'命名查询结果展示字段'
    }},
    
    # 匹配, or和and 一起用
    {'$match': {'$or':['age':{'$lt':18}, 'gender':'male'],'name':'xiaoming'}},
    
    # 单个分组条件
    {'$group':{'_id':'$gender', 'counter':{'$sum':1}}},
    # 多个分组条件
    {'$group':{'_id':{'gender':'$gender','age':'$age'},  'age_avg':{'$avg':'$age'}}}}
    
    # 设置显示的字段,默认_id 字段必须展示,设置为0不展示
    {'$project':{'_id':0, 'name':1'counter':1}},
    
   	# 排序, 1为升序,-1为降序
    {'$sort':{'counter':1}},
    
    # 分页, 先skip,后limit
    {'$skip':2},
    {'$limit':5}
    
    # 拆分:针对某些字段为列表,对元素进行拆分
    {'$unwind':'$size'}# 若拆分是为空列表、无字段、null
    {'$unwind':{'path':'$size', preserveNullAndEmptyArrays:true}}
    
    # if-else 查询,类似sql 中的case when  then  else  end  
    {'$project':
        'discount':{
            '$cond':{
                   'if':{'$gt':['$age', 35]}, 'then':'社会人''else':
                		'$cond':{
                            'if':{'$and':[{'$lt':['$age', 35]},'$gt':['$age', 22]]}, 'then':'大龄青年''else':'大学生'
                }
            	}
        	}
        }
    }
     
])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值