On this page本页内容
$dateFromString
¶New in version 3.6.版本3.6中的新功能。
Converts a date/time string to a date object.将日期/时间字符串转换为日期对象。
The $dateFromString
expression has the following syntax:$dateFromString
表达式语法如下所示:
The $dateFromString
takes a document with the following fields:$dateFromString
采用带有以下字段的文档
dateString |
Note
|
format |
|
timezone |
Note
|
onError |
|
onNull |
|
ISODate("2017-02-08T12:10:40.787Z") | |
ISODate("2017-02-08T17:10:40.787Z") | |
ISODate("2017-02-08T00:00:00Z") | |
ISODate("2018-06-15T00:00:00Z") | |
ISODate("2018-06-15T00:00:00Z") |
The following format specifiers are available for use in the 以下格式说明符可在<formatString>
:<formatString>
中使用:
%d |
01 -31 | |
%G |
0000 -9999 | |
%H |
00 -23 | |
%L |
000 -999 | |
%m |
01 -12 | |
%M |
00 -59 | |
%S |
00 -60 | |
%u |
1 -7 | |
%V |
1 -53 | |
%Y |
0000 -9999 | |
%z |
+/-[hh][mm] | |
%Z |
+/-[hhmm] ) was +0445 , the minutes offset is +285 .+/-[hhmm] )为+0445 ,则分钟偏移量为+285 。 |
+/-mmm |
%% |
% |
Consider a collection 考虑包含日志的集合logmessages
that contains the following documents with dates.logmessages
,这些日期包含日期。
The following aggregation uses $dateFromString to convert the 以下聚合使用date
value to a date object:$dateFromString
将date
值转换为日期对象:
The above aggregation returns the following documents and converts each 上述聚合返回以下文档,并将每个date
field to the Eastern Time Zone:date
字段转换为东部时区:
The timezone
argument can also be provided through a document field instead of a hard coded argument. timezone
参数也可以通过文档字段而不是硬编码参数提供。For example:例如:
The above aggregation returns the following documents and converts each 上述聚合返回以下文档,并将每个date
field to their respective UTC representations.date
字段转换为各自的UTC表示形式。
onError
¶If your collection contains documents with unparsable date strings, 如果集合中包含具有不可解析日期字符串的文档,$dateFromString
throws an error unless you provide an aggregation expression to the optional onError
parameter.$dateFromString
会引发错误,除非为可选的onError
参数提供聚合表达式。
For example, given a collection 例如,给定一个包含以下文档的集合dates
with the following documents:dates
:
You can use the 可以使用onError
parameter to return the invalid date in its original string form:onError
参数以原始字符串形式返回无效日期:
This returns the following documents:这将返回以下文档:
onNull
¶If your collection contains documents with 如果集合包含日期字符串为null
date strings, $dateFromString
returns null
unless you provide an aggregation expression to the optional onNull
parameter.null
的文档,$dateFromString
将返回null
,除非为可选的onNull
参数提供聚合表达式。
For example, given a collection 例如,给定一个包含以下文档的集合dates
with the following documents:dates
:
You can use the 可以使用onNull
parameter to have $dateFromString
return a date representing the unix epoch instead of null
:onNull
参数让$dateFromString
返回表示unix历元的日期,而不是null
:
This returns the following documents:这将返回以下文档: