描述:最近业主有这么一个需求,根据集合中 时间段进行过滤,过滤的时间时间段为日期类型字符串,须要根据某一日期进行截取后。进行分组,排序排序
概述题目:根据createTime时间段作查询,而后以 天进行分组,对分组后的结构排序字符串
一、集合信息以下(集合名称为 :DBDH) :im
{
"_id" : "123456789",
"createTime" : "20180815155266",
"infoPath" : "E:\\dbdh\\pic\\20180818\\1000999\\100987\\18\\15L\\",
"receiveTime" : "20180815155288",
"centerNo" : "10001001"
}查询
二、执行语句为 sort
db.DBDH.aggregate( db
{
$match: {/ *匹配条件*/
createTime: { $gte: "20180815155266", $lte: "20181010155266" }
}
} ,
{
$project :{new_time :{$substr :["$createTime",10,2]},"_id":0,createTime:1,} /* 从第十个位置截取长度为2位*/
} ,
{
$group : {/ *分组*/
_id :"$new_time", count: { $sum: 1}
}
} ,
{
$sort: {"_id": 1} / *排序 */
}
) 集合
执行结果(执行结果说明有两条记录既:count=2,截取后的值都为: 52):时间
/* 1 */
{
"_id" : "52",
"count" : 2.0
}co