mongo 查当周数据

今天很忙。但同时还有同事问我mongo的问题:
根据输入的时间参数,查询此时间所在的周的所有数据。


mongo.jpg

解决思路:

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}}
])
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容