$dateToString(集計)
定義
$dateToString
ユーザーが指定した形式に従って日付オブジェクトを文字列に変換します。
$dateToString
式には次の演算子式の構文があります。
次の環境でホストされる配置には $dateToString
を使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
$dateToString
式には次の演算子式の構文があります。
{ $dateToString: { date: <dateExpression>, format: <formatString>, timezone: <tzExpression>, onNull: <expression> } }
フィールド | 説明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
| 任意。日付形式の指定。 指定されておらず、 指定されておらず、かつ | ||||||||||||
| 任意。 操作結果のタイムゾーン。
| ||||||||||||
| オプション。 指定されていない場合、 が null または欠落していれば、 は null |
フォーマット指定子
<formatString>
0で使える書式指定子は以下の通りでし。
指定子 | 説明 | Possible Values |
---|---|---|
| 省略表記の月(3 文字) バージョン 7.0 で追加。 |
|
| 正式な月名 バージョン 7.0 で追加。 |
|
| 日付(2桁、ゼロあり) |
|
| ISO 8601 形式の年 |
|
| 時間(2 桁、ゼロあり、24 時間表記) |
|
| 年内の日(3桁、ゼロ埋め) |
|
| ミリ秒 (3 桁、ゼロ埋め込み) |
|
| 月 (2 桁、ゼロ埋め込み) |
|
| 分(2桁、ゼロ埋め込み) |
|
| 秒(2 桁、ゼロ埋め込み) |
|
| ISO 8601 形式の曜日番号(1 - 月曜日、7 - 日曜日) |
|
| 年内の週(2 桁、ゼロ埋め込み) |
|
| ISO 8601形式の年内の週 |
|
| 曜日(1-日曜日、7-土曜日) |
|
| 年(4 桁、ゼロ埋め込み) |
|
| UTC からのタイムゾーン オフセット。 |
|
| UTC からのオフセットを数値として表した分。たとえば、タイムゾーン オフセット ( |
|
| リテラルパーセント文字 |
|
例
次の文書を持つ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" }