你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用对象: MongoDB vCore
运算符 $toDate
将值转换为日期。 运算符接受各种输入格式,包括字符串、数字(表示 Unix 纪元以来的毫秒)、ObjectId 和 Timestamp 值。 此运算符对于数据转换和类型转换作至关重要。
语法
运算符的 $isArray
语法如下所示:
{
$toDate: <expression>
}
参数
DESCRIPTION | |
---|---|
expression |
可以转换为日期的表达式。 支持的格式包括:ISO 日期字符串、自 Unix 纪元(数字)、ObjectId 和 Timestamp 以来的毫秒数。 如果表达式无法转换为日期,作将返回错误。 |
示例:
让我们了解数据集中示例 JSON 的 stores
用法。
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"location": { "lat": -48.9752, "lon": -141.6816 },
"staff": { "employeeCount": { "fullTime": 12, "partTime": 19 } },
"sales": {
"salesByCategory": [ { "categoryName": "Desk Lamps", "totalSales": 37978 } ],
"revenue": 37978
},
"promotionEvents": [
{
"eventName": "Crazy Deal Days",
"promotionalDates": {
"startDate": { "Year": 2023, "Month": 9, "Day": 27 },
"endDate": { "Year": 2023, "Month": 10, "Day": 4 }
}
}
],
"company": "Trey Research",
"city": "Lake Freeda",
"storeOpeningDate": ISODate("2024-09-26T22:55:25.779Z"),
"lastUpdated": Timestamp({ "t": 1729983325, "i": 1 })
}
示例 1:将时间戳转换为日期
此示例将 Unix 时间戳转换为适当的日期格式,以便更好地进行可读性和日期作。
db.stores.aggregate([
{ $match: { "_id": "905d1939-e03a-413e-a9c4-221f74055aac" } },
{
$project: {
name: 1,
lastUpdated: 1,
lastUpdatedAsDate: { $toDate: "$lastUpdated" }
}
}
])
查询将时间戳字段转换为可读日期格式。
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"lastUpdated": { "t": 1729983325, "i": 1 },
"lastUpdatedAsDate": ISODate("2024-10-26T22:55:25.000Z")
}