$dateFromString

$dateFromString 运算符用于将日期/时间字符串转换为 MongoDB 中的日期对象。 处理需要作为日期对象作或查询的日期的字符串表示形式时,此作非常有用。

语法

{ $dateFromString: { dateString: <string>, format: <string>, timezone: <string>, onError: <expression>, onNull: <expression> } }

参数

参数 说明
dateString 要转换为日期对象的日期/时间字符串。
format (可选)的日期格式规范 dateString
timezone (可选)用于设置日期格式的时区。
onError (可选)分析时出错时 dateString要返回的值。
onNull (可选)要返回的值(如果 dateStringnull 或缺失)。

示例

转换促销事件日期

此示例演示如何将促销事件从字符串表示形式转换为startDateendDate日期对象。

db.collection.aggregate([
  {
    $project: {
      eventName: 1,
      startDate: {
        $dateFromString: {
          dateString: {
            $concat: [
              { $toString: "$promotionEvents.promotionalDates.startDate.Year" },
              "-",
              { $toString: "$promotionEvents.promotionalDates.startDate.Month" },
              "-",
              { $toString: "$promotionEvents.promotionalDates.startDate.Day" }
            ]
          }
        }
      },
      endDate: {
        $dateFromString: {
          dateString: {
            $concat: [
              { $toString: "$promotionEvents.promotionalDates.endDate.Year" },
              "-",
              { $toString: "$promotionEvents.promotionalDates.endDate.Month" },
              "-",
              { $toString: "$promotionEvents.promotionalDates.endDate.Day" }
            ]
          }
        }
      }
    }
  }
])