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

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

Date()

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

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

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

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

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

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

  • Date() returns the current date as a string in mongosh.

  • new Date() は、現在の日付を Dateオブジェクトとして返します。mongosh ISODateは Dateオブジェクトを ヘルパーでラップします。ISODate は UTC です。

特定の日付を指定するには、 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 wraps objects of Date type with the ISODate helper. However, the objects are Date types.

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

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

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

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

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の日付が $lt 演算子に指定された ISODate より以前のドキュメントを返します。

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')
}
]
このページを評価