当前位置: 首页 > news >正文

MongoDB聚合运算符:$week

MongoDB聚合运算符:$week

文章目录

  • MongoDB聚合运算符:$week
    • 语法
    • 使用
    • 举例

$week聚合运算符返回指定日期日期为一年中第几周的数字值为0到53之间。周从周日开始,第1周从一年的第一个周日开始。一年中第一个星期日之前的日期为第0周。这和 strftime标准库函数中的 "%U"操作符相同。

语法

{ $week: <dateExpression> }

参数说明:

  • <dateExpression>为可解析为Date、Timestamp或ObjectID
  • 或者参数也可以是一个文档:
    { date: <dateExpression>, timezone: <tzExpression> }
    • timezone为可选参数,用于指定运算时的时区
    • <tzExpression>为字符串或字符串表达式,其值为奥尔森时区标识符或UTC偏移,如果不指定,则默认为UTC。
      奥尔森时区标识符:“America/New_York”、“Europe/London”、“GMT”
      UTC偏移量:+/-[hh]:[mm] 如: “+04:45”;+/-[hh][mm],如: “-0530”;+/-[hh],如:“+03”

使用

参考下面的例子来说明:

例1:

{ $week: new Date("Jan 1, 2016") }

结果:0

例2:

{ $week: { date: new Date("2016-01-04") } }

结果:1

例3:

{ $week: {date: new Date("August 14, 2011"),timezone: "America/Chicago"
} }

结果:33

例4:

{ $week: ISODate("1998-11-01T00:00:00Z") }

结果:44

例5:

{ $week: {date: ISODate("1998-11-01T00:00:00Z"),timezone: "-0500"
} }

结果:43

例6:

{ $week: "March 28, 1976" }

结果:error

例7:

{ $week: Date("2016-01-01") }

结果:error

例8:

{ $week: "2009-04-09" }

结果:error

举例

salse集合有下面的文档:

{"_id" : 1,"item" : "abc","price" : 10,"quantity" : 2,"date" : ISODate("2014-01-01T08:15:39.736Z")
}

下面的聚合使用$week和其他的日期表达式来分解日期字段

db.sales.aggregate([{$project:{year: { $year: "$date" },month: { $week: "$date" },day: { $dayOfMonth: "$date" },hour: { $week: "$date" },minutes: { $minute: "$date" },seconds: { $second: "$date" },milliseconds: { $week: "$date" },dayOfYear: { $dayOfYear: "$date" },dayOfWeek: { $dayOfWeek: "$date" }}}]
)

操作返回下面的结果:

{"_id" : 1,"year" : 2014,"month" : 1,"day" : 1,"hour" : 8,"minutes" : 15,"seconds" : 39,"milliseconds" : 736,"dayOfYear" : 1,"dayOfWeek" : 4,"week" : 0
}
http://www.lryc.cn/news/349946.html

相关文章:

  • 【Linux】如何定位客户端程序的问题
  • AI学习指南数学工具篇-PCA基础知识
  • 《系统架构设计师教程(第2版)》第4章-信息安全技术基础知识-02-信息加密技术
  • Leetcode 404:左叶子之和
  • Keil问题解决:结构体数组初始化,初始化后的值不是目标值
  • C++set关联式容器
  • Celery Redis 集群版连接和PyCharm启动配置
  • 「AIGC算法」readLink实现url识别pdf、网页标题和内容
  • Vue3+ts(day06:路由)
  • springboot集成dubbo实现微服务系统
  • idea使用gitee基本操作流程
  • Docker容器里面有什么东西?
  • vue基础+高级用法
  • 鸿蒙应用布局ArkUI【基础运用案例】
  • GD32F103RCT6/GD32F303RCT6-UCOSIII底层移植(1)工程建立
  • 在本地设备上配置 Git 忽略特定文件
  • cin.ignore()函数和stoll函数
  • win11快速安装mysql数据库系统
  • C# WinForm —— 21 RichTextBox 使用
  • 【数据结构】堆(超详细)
  • 常用正则 JS 持续更新
  • YOLO v6 iou_loss dfl_loss一直为0
  • FreeRTOS【4】线程挂起和恢复
  • CPU占用率过高排查
  • 关于 vs2019 c++20 规范里的 STL 库里模板 decay_t<T>
  • android C++打印堆栈
  • MySQL Undo Log、Redo Log、bin Log
  • vld.ini配置文件说明
  • NSS【web】刷题
  • 将TailwindCSS默认单位rem转换为px