描述:最近業主有這么一個需求,根據集合中 時間段進行過濾,過濾的時間時間段為日期類型字符串,需要根據某一日期進行截取后。進行分組,排序
概述題目:根據createTime時間段做查詢,然后以 天進行分組,對分組后的結構排序
1、集合信息如下(集合名稱為 :DBDH) :
{
"_id" : "123456789",
"createTime" : "20180815155266",
"infoPath" : "E:\\dbdh\\pic\\20180818\\1000999\\100987\\18\\15L\\",
"receiveTime" : "20180815155288",
"centerNo" : "10001001"
}
2、執行語句為
db.DBDH.aggregate(
{
$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
}