MongoDB笔记三

MongoDB聚合查询 aggregate

aggregate函数,数量统计函数

db.collection.aggregate([{$match:{field:{condition}}},{$group:{_id:"$field"|{"$field","$field"}},result:{$sum:1}}])

实例:

db.collecction.aggregate([
//过滤条件
{$match:{name:"zhangsan",age:{$gt:70,$lt:100}}},
//分组,这里_id是固定的,表示是按照什么分组可以是字符串,表示单个字段,可以是对象,表示多个字段分组。同时这个_id也是生成的分组结果的_id,其对象是$表示的引用值
{$group:{_id:{"$name",count:{$sum:1}}}}//这里表示按照name分组。统计结果中,返回count字段,按照求和方式,即为条数。除了$sum,还支持$avg,$first,$max,$min,$last等。具体可以查询文档
{$sort:{“_id”:1}}//表示分组后的排序
])

aggregate支持的函数包括:
max: min:最小值
avg: sum:求和
last: first:分组第一条记录。
MongoDB的日期处理:

$dayOfYear: 返回该日期是这一年的第几天。(全年366天)
$dayOfMonth: 返回该日期是这一个月的第几天。(131$dayOfWeek: 返回的是这个周的星期几。(1:星期日,7:星期六)
$year: 返回该日期的年份部分
$month: 返回该日期的月份部分(between 1 and 12.)
$week: 返回该日期是所在年的第几个星期(between 0 and 53$hour: 返回该日期的小时部分
$minute: 返回该日期的分钟部分
$second: 返回该日期的秒部分(以059之间的数字形式返回日期的第二部分,但可以是60来计算闰秒。)
$millisecond:返回该日期的毫秒部分(between 0 and 999.)
$dateToString:
    { $dateToString: { format: <formatString>, date: <dateExpression> } }
%Y  Year (4 digits, zero padded)    0000-9999
%m  Month (2 digits, zero padded)   01-12
%d  Day of Month (2 digits, zero padded)    01-31
%H  Hour (2 digits, zero padded, 24-hour clock) 00-23
%M  Minute (2 digits, zero padded)  00-59
%S  Second (2 digits, zero padded)  00-60
%L  Millisecond (3 digits, zero padded) 000-999
%j  Day of year (3 digits, zero padded) 001-366
%w  Day of week (1-Sunday, 7-Saturday)  1-7
%U  Week of year (2 digits, zero padded)    00-53
%%  Percent Character as a Literal  %

参考资料:
mongo聚合日期分组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值