AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

$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> は、有効な式であり、Date、Timestamp、または 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> は、有効な式であり、Olson タイムゾーン識別子 または UTC オフセット として形式された string に変換される必要があります。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 を返します。

<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コレクションを考えます。

db.sales.insertOne( { "_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"}
このページを評価