本文介绍了$Week函数和聚合中的周的第一天的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用$project运算符从日期中提取周部分,然后在聚合管道中按周分组:

{ $project: {
    year: { $year: [ "$datetime" ] },
    week: { $week: [ "$datetime" ] },
    ....
    }
},
....
{ $group: {
    _id: {
        year: "$year",
        week: "$week",
        },
        .....
    }
}

但我使用的$week运算符始终将星期日计为一周的第一天,而我们使用星期一作为我们所在位置的一周的第一天。因此,按周分组的结果对我来说总是不正确的。

existing request in mongo tracking system似乎已有一年多未解决(是否真的有这么少需要的选项?)。

欢迎任何可能的选项。也许可以在javascript中创建一些自定义函数,然后在某个地方添加/替换它?

推荐答案

MongoDB终于在3.4中添加了$isoWeek$isoWeekYear,本周将从星期一开始。

详细信息:https://docs.mongodb.com/manual/reference/operator/aggregation/isoWeek/

这篇关于$Week函数和聚合中的周的第一天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-21 12:33