$dateFromParts

运算符 $dateFromParts 从各个组件(如年份、月、日、小时、分钟、秒和毫秒)构造日期。 处理单独存储日期组件的数据时,此运算符非常有用。

语法

{ $dateFromParts: { year: <year>, month: <month>, day: <day>, hour: <hour>, minute: <minute>, second: <second>, millisecond: <millisecond>, timezone: <timezone> } }

参数

参数 说明
year 日期的年份部分。
month 日期的月份组件。
day 日期的日期部分。
hour 日期的小时部分。
minute 日期的分钟分量。
second 日期的第二个组成部分。
millisecond 日期的毫秒部分。
timezone 可选。 时区规范。

例子

示例 1:构造开始日期

构造促销事件的开始日期:

db.collection.aggregate([
  {
    $project: {
      eventName: 1,
      startDate: {
        $dateFromParts: {
          year: "$promotionEvents.promotionalDates.startDate.Year",
          month: "$promotionEvents.promotionalDates.startDate.Month",
          day: "$promotionEvents.promotionalDates.startDate.Day"
        }
      }
    }
  }
])

示例 2:构造结束日期

构造促销事件的结束日期:

db.collection.aggregate([
  {
    $project: {
      eventName: 1,
      endDate: {
        $dateFromParts: {
          year: "$promotionEvents.promotionalDates.endDate.Year",
          month: "$promotionEvents.promotionalDates.endDate.Month",
          day: "$promotionEvents.promotionalDates.endDate.Day"
        }
      }
    }
  }
])