$dateToString (日付のフォーマット)

最終更新:2026-10-09

$dateToString (日付のフォーマット)

$dateToString は、フォーマットパターンを使って日付を文字列に整形します。集計パイプラインで日付を出力する標準的な方法です。パターンは %Y(年)、%m(月)、%d(日)、%H(時)のようなプレースホルダを使い、strftime に似ています。date が null・欠落のときは、onNull にデフォルトが指定されていればそれを返し、そうでなければ null を返します。

カテゴリ日付
MongoDB バージョン3.0+
例の言語mongosh(シェル)

📝 構文

{ $dateToString: { format: <format>, date: <date-expression>, timezone: <timezone>, onNull: <default> } }

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $dateToString: 注文日をフォーマット
db.orders.aggregate([
  { $project: {
      dateStr: { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } }
  } }
])

出力:

{ "_id": 1, "dateStr": "2026-09-25" }
{ "_id": 2, "dateStr": "2026-09-24" }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Qタイムゾーンはどう指定しますか?
AIANA 名(例: "Asia/Shanghai")または UTC オフセット(例: "+08:00")を使います。既定は UTC です。
Q$dateToString はどのフォーマット指定子をサポートしていますか?
A代表的なものに %Y(年)、%m(月)、%d(日)、%H(時)、%M(分)、%S(秒)、%L(ミリ秒)、%z(UTCオフセット)、%j(年間通算日)があります。完全な一覧は公式ドキュメントを参照してください。
Qdate フィールドが Date 型でない場合はどうなりますか?
ADate 型を期待しています。それ以外の場合は null を返すか、エラーになります(厳密モードによる)。必要なら先に $toDate で変換してください。
QISO 8601 形式で出力できますか?
Aできます。%Y-%m-%dT%H:%M:%S.%LZ を組み合わせると 2026-10-01T08:30:00.000Z のような形式になります。あるいは $isoDate 式を使います。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%