$toDate (日付への変換)

最終更新:2026-10-09

$toDate (日付への変換)

$toDate は値を BSON の Date に変換します。日付はそのまま通し、数値はミリ秒タイムスタンプとして扱い、ISO 8601 形式の文字列を解析します。代表的な用途は、ログの時刻文字列を日ごとのグループ化用の日付に変換したり、フロントエンドから受け取ったミリ秒タイムスタンプを標準化したりすることです。無効な文字列はエラーになるため、データが汚れている場合は onError 付きの $convert を優先します。null の入力は null を返します。$dateFromString と比べ、$toDate は構文が単純で ISO 形式を自動検出します。

カテゴリ集合・条件・変換
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $toDate: <expression> }

⚙️ パラメータ

式日付、数値のミリ秒タイムスタンプ、または ISO 文字列。

戻り値:Date。入力が null の場合は null

▶ 例

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

// $toDate: 時刻文字列を日付に解析
db.logs.aggregate([
  { $project: {
      ts: { $toDate: '$timeStr' }
  } }
])

出力:

{ '_id': 1, 'ts': { '$date': '2026-09-25T08:00:00Z' } }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Qどの文字列を解析できますか?
AISO 8601 形式です。例: '2026-09-25T08:00:00Z'。
Q秒単位のタイムスタンプは?
A先に 1000 倍します: { $multiply: ['$ts', 1000] } の後に変換します。
Q$dateFromString との違いは?
A$toDate は ISO 形式を自動検出します。$dateFromString は形式とタイムゾーンをカスタマイズできます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%