开发技术积累mongoDBMongoDB极简教程 · Mongo · NoSQL

mongo 查当周数据

2019-11-15  本文已影响0人  会去大草原的程序猿

今天很忙。但同时还有同事问我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}}
])
上一篇 下一篇

猜你喜欢

热点阅读