Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$dateToString(集計)

項目一覧

  • 定義
  • フォーマット指定子
$dateToString

ユーザーが指定した形式に従って日付オブジェクトを文字列に変換します。

$dateToString式には次の演算子式の構文があります。

次の環境でホストされる配置には $dateToString を使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

$dateToString式には次の演算子式の構文があります。

{ $dateToString: {
date: <dateExpression>,
format: <formatString>,
timezone: <tzExpression>,
onNull: <expression>
} }
フィールド
説明
date
文字列に変換する日付。<dateExpression> は、有効なであり、DateTimestamp、または ObjectId に変換されなければなりません。
format

任意。日付形式の指定。<formatString> は、0 個以上の形式指定子を含む任意の文字列リテラルであり、使用可能な指定子のリストについては、「 形式指定子 」を参照してください。

指定されておらず、timezone が指定され、UTC 以外のタイムゾーンに設定されている場合、$dateToString はデフォルト形式として "%Y-%m-%dT%H:%M:%S.%L" を使用します。

指定されておらず、かつ timezone が指定されていないか、UTC として明示的に指定されている場合、$dateToString はデフォルト形式として "%Y-%m-%dT%H:%M:%S.%LZ" を使用します。

timezone

任意。 操作結果のタイムゾーン。 <tzExpression>は、有効な式であり、string Olson タイムゾーン識別子 または UTC オフセット のいずれかとして形式された文字列に変換される必要があります。timezone が指定されていない場合、結果は UTC になります。

形式
Olson Timezone Identifier
"America/New_York"
"Europe/London"
"GMT"
UTC Offset
+/-[hh]:[mm], e.g. "+04:45"
+/-[hh][mm], e.g. "-0530"
+/-[hh], e.g. "+03"
onNull

オプション。date0}がNULLまたは見つからない場合に返す値。引数には任意の有効なを使用できます。

指定されていない場合、date が null または欠落していれば、$dateToString は null を返します。

Tip

以下も参照してください。

<formatString>0で使える書式指定子は以下の通りでし。

指定子
説明
Possible Values
%b

省略表記の月(3 文字)

バージョン 7.0 で追加

jan-dec
%B

正式な月名

バージョン 7.0 で追加

january-december
%d
日付(2桁、ゼロあり)
01-31
%G
ISO 8601 形式の年
0000-9999
%H
時間(2 桁、ゼロあり、24 時間表記)
00-23
%j
年内の日(3桁、ゼロ埋め)
001-366
%L
ミリ秒 (3 桁、ゼロ埋め込み)
000-999
%m
月 (2 桁、ゼロ埋め込み)
01-12
%M
分(2桁、ゼロ埋め込み)
00-59
%S
秒(2 桁、ゼロ埋め込み)
00-60
%u
ISO 8601 形式の曜日番号(1 - 月曜日、7 - 日曜日)
1-7
%U
年内の週(2 桁、ゼロ埋め込み)
00-53
%V
ISO 8601形式の年内の週
01-53
%w
曜日(1-日曜日、7-土曜日)
1-7
%Y
年(4 桁、ゼロ埋め込み)
0000-9999
%z
UTC からのタイムゾーン オフセット。
+/-[hh][mm]
%Z
UTC からのオフセットを数値として表した分。たとえば、タイムゾーン オフセット ( +/-[hhmm] ) が+0445の場合、分オフセットは+285になります。
+/-mmm
%%
リテラルパーセント文字
%

次の文書を持つsalesコレクションを考えます。

{
"_id" : 1,
"item" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2014-01-01T08:15:39.736Z")
}

次の集計では、 $dateToStringを使用してdateフィールドを書式設定された string として返します。

db.sales.aggregate(
[
{
$project: {
yearMonthDayUTC: { $dateToString: { format: "%Y-%m-%d", date: "$date" } },
timewithOffsetNY: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "America/New_York"} },
timewithOffset430: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "+04:30" } },
minutesOffsetNY: { $dateToString: { format: "%Z", date: "$date", timezone: "America/New_York" } },
minutesOffset430: { $dateToString: { format: "%Z", date: "$date", timezone: "+04:30" } },
abbreviated_month: { $dateToString: {format: "%b", date: "$date", timezone: "+04:30" } },
full_month: { $dateToString: { format: "%B", date: "$date", timezone: "+04:30" } }
}
}
]
)

この操作では、次の結果を返します。

{
"_id" : 1,
"yearMonthDayUTC" : "2014-01-01",
"timewithOffsetNY" : "03:15:39:736-0500",
"timewithOffset430" : "12:45:39:736+0430",
"minutesOffsetNY" : "-300",
"minutesOffset430" : "270",
"abbreviated_month": "Jan",
"full_month": "January"
}

戻る

$dateToParts