文章目录
$isoDayOfWeek
聚合运算符返回ISO 8601格式的星期编号,范围从 1(表示星期一)到 7(表示星期日)。
语法
{ $isoDayOfWeek: <dateExpression> }
<dateExpression>
为可被解析为Date、Timestamp或ObjectID的表达式<dateExpression>
也可以是一个文档{ date: <dateExpression>, timezone: <tzExpression> }
date
是可以被解析为Date、Timestamp或ObjectID的表达式timezone
可选,操作结果的时区,如果未提供时区,结果将以UTC格式显示。
使用
下面通过示例对使用规则进行说明:
例1
{ $isoDayOfWeek: new Date("2016-01-01") }
结果:5
例2
{ $isoDayOfWeek: { date: new Date("Jan 7, 2003") } }
结果:2
例3
{ $isoDayOfWeek: {
date: new Date("August 14, 2011"),
timezone: "America/Chicago"
} }
结果:7
例4
{ $isoDayOfWeek: ISODate("1998-11-07T00:00:00Z") }
结果:6
例5
{ $isoDayOfWeek: {
date: ISODate("1998-11-07T00:00:00Z"),
timezone: "-0400"
} }
结果:5
例6
{ $isoDayOfWeek: "March 28, 1976" }
结果:error
例7
{ $isoDayOfWeek: Date("2016-01-01") }
结果:error
例8
{ $isoDayOfWeek: "2009-04-09" }
结果:error
举例
birthdays
集合有下面的文档:
{ "_id" : 1, "name" : "Betty", "birthday" : ISODate("1993-09-21T00:00:00Z") }
{ "_id" : 2, "name" : "Veronica", "birthday" : ISODate("1981-11-07T00:00:00Z") }
以下操作返回birthday
字段的星期编号:
db.dates.aggregate( [
{
$project: {
_id: 0,
name: "$name",
dayOfWeek: { $isoDayOfWeek: "$birthday" }
}
}
] )
操作返回下面的结果:
{ "name" : "Betty", "dayOfWeek" : 2 }
{ "name" : "Veronica", "dayOfWeek" : 6 }