今天很忙。但同时还有同事问我mongo的问题:
根据输入的时间参数,查询此时间所在的周的所有数据。
解决思路:
1.字符串转时间:用$dataFromString
2.用周的计数,例如2019/11/15是第41周。
3.时间减一,因为0时区的周天认为是每周的第一天。而我们以为是最后一天,所以需要把周天减一成周六,用$add,-1*...(毫秒)
具体语句:(记录一下,费了我的脑细胞)
db.getCollection('t_quality_unnormal_Explanation_board').aggregate([
{$addFields:
{ flag:{$eq:[{$year:{$dateFromString:{dateString:"$filedate"}}},
{$year:{$add:[{$dateFromString:{dateString:"2019-11-18"}},-1*24*60*60000]}}],
$eq:[{$week:{$dateFromString:{dateString:"$filedate"}}},
{$week:{$add:[{$dateFromString:{dateString:"2019-11-18"}},-1*24*60*60000]}}]},
}} ,
{$match:{flag:true}},
{$project:{filedate:1}}
])