MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのISODateから年・月・日・時刻などを取得する方法

MongoDBのmongoシェルでは、ISODate()などさまざまなメソッドを使って日付を文字列またはDateオブジェクトとして扱うことができます。ISODate()コンストラクターは、内部でラッパーとして機能し、Dateオブジェクトを返します。

この記事では、集計パイプライン(aggregate)の日付演算子を使って、ISODate型のフィールドから年・月・日・時・分・秒・週などの各要素を取り出す方法を解説します。

1. サンプルデータの作成

まず、ドキュメントを含むコレクションを作成しましょう。

> db.demo548.insertOne({"dueDate":new ISODate("2020-04-09 12:12:40")});{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e8e30499e5f92834d7f05de")
}

2. ドキュメントの確認

find()メソッドを使って、コレクション内のすべてのドキュメントを表示します。

> db.demo548.find();

実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e8e30499e5f92834d7f05de"), "dueDate" : ISODate("2020-04-
09T12:12:40Z") }

3. 日付要素を抽出するクエリ

以下は、ISODateから年、月、日、週などを表示するためのクエリです。集計パイプラインの$projectステージで、$year$month$dayOfMonthなどの日付演算子を使用しています。

> db.demo548.aggregate( [ { $project: { Year: { $year: "$dueDate"
}, Month: { $month: "$dueDate" }, Day: { $dayOfMonth: "$dueDate"
}, Hour: { $hour: "$dueDate" }, Minutes: { $minute: "$dueDate" },
Seconds: { $second: "$dueDate" }, Milliseconds: { $millisecond: "$dueDate" },
DayOfYear: { $dayOfYear: "$dueDate" }, DayOfWeek: { $dayOfWeek: "$dueDate"
}, Week: { $week: "$dueDate" } } } ] ).pretty();

4. 実行結果

上記のクエリを実行すると、次のような出力が得られます。

{
    "_id" : ObjectId("5e8e30499e5f92834d7f05de"),
    "Year" : 2020,
    "Month" : 4,
    "Day" : 9,
    "Hour" : 12,
    "Minutes" : 12,
    "Seconds" : 40,
    "Milliseconds" : 0,
    "DayOfYear" : 100,
    "DayOfWeek" : 5,
    "Week" : 14
}

使用した日付演算子の一覧

  • $year: 年(2020)
  • $month: 月(4)
  • $dayOfMonth: 月の何日目か(9)
  • $hour: 時(12)
  • $minute: 分(12)
  • $second: 秒(40)
  • $millisecond: ミリ秒(0)
  • $dayOfYear: 年の何日目か(100)
  • $dayOfWeek: 曜日の番号(1=日曜日〜7=土曜日。ここでは5=木曜日)
  • $week: 年の何週目か(14)

このように、$projectステージと日付演算子を組み合わせることで、ISODate型の値から必要な日付・時刻の要素だけを簡単に取り出すことができます。レポート作成や期間別のデータ集計などにぜひ活用してください。

  1. PHPのdate_parse()関数でタイムスタンプから日・月・年を抽出する方法

    date_parse()関数でタイムスタンプを解析するPHPでタイムスタンプ(日時文字列)から日・月・年を抽出するには、date_parse() 関数を使用します。この関数は日時文字列を解析し、年・月・日・時・分・秒などの情報を連想配列として返してくれます。基本構文は以下の通りです。print_r(date_parse(anyTimeStampValue));サンプルコード具体的なタイムスタンプ値を解析するPHPコードは以下のようになります。$yourTimeStampValue="2019-02-04 12:56:50"; print_r(date_parse($your

  2. Javaで年・月・日から日付を取得する3つの方法(LocalDate、GregorianCalendar、SimpleDateFormat)

    Javaでは、年・月・日の値から日付オブジェクトを作成する方法がいくつかあります。この記事では、代表的な3つの手法——java.time.LocalDateクラスのof()メソッド、java.util.GregorianCalendarクラス、そしてSimpleDateFormatクラス——の使い方を、サンプルコードと実行結果とともにわかりやすく解説します。 1. LocalDateクラスのof()メソッドを使う Java 8以降で導入された日時API(Date-Time API)に含まれるjava.time.LocalDateクラスのof()メソッドは、年、月、日を引数として受け取り、その