该 $dateFromString
运算符用于将日期/时间字符串转换为 MongoDB 中的日期对象。 处理需要作为日期对象作或查询的日期的字符串表示形式时,此作非常有用。
语法
{ $dateFromString: { dateString: <string>, format: <string>, timezone: <string>, onError: <expression>, onNull: <expression> } }
参数
参数 | 说明 |
---|---|
dateString |
要转换为日期对象的日期/时间字符串。 |
format |
(可选)的日期格式规范 dateString 。 |
timezone |
(可选)用于设置日期格式的时区。 |
onError |
(可选)分析时出错时 dateString 要返回的值。 |
onNull |
(可选)要返回的值(如果 dateString 为 null 或缺失)。 |
示例
转换促销事件日期
此示例演示如何将促销事件从字符串表示形式转换为startDate
endDate
日期对象。
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" }
]
}
}
}
}
}
])