语法:
{
$dateFromString: {
dateString: <dateStringExpression>,
format: <formatStringExpression>,
timezone: <tzExpression>,
onError: <onErrorExpression>,
onNull: <onNullExpression>
}
}
语法说明:
(1)dateString: <dateStringExpression>:代表的是需要转换成日期的字符串表达式
(2)format: <formatStringExpression>:可选,代表的是转换格式表达式,默认使用:"%Y-%m-%dT%H:%M:%S.%LZ"
(3)timezone: <tzExpression>:可选,代表的是转换成日期时使用的时区的表达式
(4)onError: <onErrorExpression>:可选,代表的是转换失败时的处理方式的表达式
(5)onNull: <onNullExpression>:可选,代表的是Null的情况下的处理方式的表达式
从 timestamp 转换为日期取决于我们保存时间戳的类型。它是对象、数字还是字符串类型。
我们可以在 mongo shell 上使用以下命令检查字段的类型。在本教程中,我们将学习如何将时间戳转换为数字、字符串或对象类型的日期。
检查字段类型:
// MongoDB 5.0.8
> typeof db.collection_name.findOne().fieldName;
一、当时间戳为数字类型时,将时间戳转换为日期
示例代码(用于 collection1
):
// MongoDB 5.0.8
> db.collection1.insertMany([
{"_id": 1, "datetime": new Date().getTime()}, //saves timestamp in milliseconds
{"_id": 2, "datetime": new Date().getTime()},
{"_id": 3, "datetime": new Date().getTime()},
{"_id