AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Date() と Datetime(mongoshメソッド)

Date()

日付を文字列または Date オブジェクトとして返します。この日付には日付と時刻を含むことができ、これはdatetime として知られているます。

BSON仕様 Dateでは、UTC 日時を含む オブジェクトを含めることができます。 UTC は 協定世界時 です。 UTC 日時は、符号なしの64 ビット整数値を保存し、Unix エポック( 年1 11970 月00 00日(::00 UTC)からの経過ミリ秒数を示します。

次の環境でホストされる配置には Date() を使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

次のいずれかの形式を指定できます。

特定の日付を指定するには、 0 から 9999 まで(両端を含める)の年を指定した ISO-8601 date string を new Date() コンストラクターまたは ISODate() 関数に渡します。これらの関数は、次の形式を受け入れます。

  • new Date("<YYYY-mm-dd>") では、指定された日付の ISODate を返します。

  • new Date("<YYYY-mm-ddTHH:MM:ss.sss>") では、クライアントのローカル タイムゾーンの日時を指定し、UTC で指定された日時の ISODate を返します。ss.sss秒 ( ss ) とミリ秒 ( .sss ) を指定します。省略する場合、ミリ秒は 0 に設定されます。

  • new Date("<YYYY-mm-ddTHH:MM:ss.sssZ>") では、UTC で日時を指定し、UTC で指定された日時の ISODate を返します。ss.sss秒 ( ss ) とミリ秒 ( .sss ) を指定します。省略する場合、ミリ秒は 0 に設定されます。

  • new Date(<integer>) では、UNIX エポック(1970 年 1 月 1 日)からの日時をミリ秒で指定し、結果の ISODate インスタンスを返します。

内部的には、 Date オブジェクトは、UNIX エポック(1970 年 1 月 1 日)からのミリ秒数を表す符号付き 64 ビット整数として保存されます。

すべてのデータベース操作とドライバーが64 ビット範囲全体をサポートしているわけではありません。年が 0 から 9999 まで(両端を含める)の範囲内にある日付であれば安全に処理できます。

指定された title のドキュメントが moviesコレクションに存在しない場合、次の操作で、フィールドdateAdded に現在の日付が設定されたドキュメントが挿入されます。

db.movies.updateOne(
{ title: "Upsert Demo Film 2099" },
{
$set: { genre: "Drama" },
$setOnInsert: { dateAdded: new Date() }
},
{ upsert: true }
)
{
acknowledged: true,
insertedId: "...",
matchedCount: 0,
modifiedCount: 0,
upsertedCount: 1
}

Tip

日付を文字列として返すには、Date() メソッドを使用します。例は次のとおりです。

var myDateString = Date();

mongoshは、Date型のオブジェクトをISODateヘルパーでラップします。ただし、オブジェクトはDateタイプです。

次の例では、new Date() を使用して、指定された UTC 日時を持つ Date オブジェクトを返します。

var myDate = new Date("2016-05-18T16:00:00Z");

日付を ISODate オブジェクトとして指定できます。

次の例では、 releasedフィールドに ISODate オブジェクトを含むドキュメントを、sample_mflixデータベースの moviesコレクションに挿入します。

db.movies.insertMany( [
{ title: "ISODate Demo: Chocolate", released: new ISODate("2020-05-18T14:10:30.123Z") },
{ title: "ISODate Demo: Strawberry", released: new ISODate("2021-03-20T11:30:05.000Z") },
{ title: "ISODate Demo: Vanilla", released: new ISODate("2021-01-15T06:31:15.456Z") }
] )

次の例では、released の日付がISODate $lt演算子で指定された より小さいドキュメントを返します。

db.movies.find(
{ released: { $lt: ISODate("2021-02-25T10:03:46.234Z") },
title: /^ISODate Demo:/ },
{ title: 1, released: 1, _id: 0 }
).sort( { released: 1 } ).toArray()
[
{
title: 'ISODate Demo: Chocolate',
released: ISODate('2020-05-18T14:10:30.123Z')
},
{
title: 'ISODate Demo: Vanilla',
released: ISODate('2021-01-15T06:31:15.456Z')
}
]
このページを評価