Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

Date() と Datetime

項目一覧

  • 互換性
  • 構文
  • 動作
Date()

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

BSON 仕様 Dateは、 オブジェクトに UTC 日時 が含まれていることを示します。UTC は協定世界時です。 UTC 日時は、符号なしの64 ビット整数値を保存し、Unix エポック( 1 月1 日、1970 の時刻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>") では、クライアントのローカル タイムゾーンの日時を指定し、UTC で指定された日時の ISODate を返します。

  • new Date("<YYYY-mm-ddTHH:MM:ssZ>") では、UTC で日時を指定し、UTC で指定された日時の ISODate を返します。

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

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

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

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

db.products.updateOne(
{ _id: 1 },
{
$set: { item: "apple" },
$setOnInsert: { dateAdded: new Date() }
},
{ upsert: true }
)

Tip

以下も参照してください。

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

var myDateString = Date();

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

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

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

Tip

以下も参照してください。

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

次の例では、 orderDate フィールドに ISODate オブジェクトを含む cakeSales コレクションを作成します。

db.cakeSales.insertMany( [
{ _id: 0, type: "chocolate", orderDate: new ISODate("2020-05-18T14:10:30Z") },
{ _id: 1, type: "strawberry", orderDate: new ISODate("2021-03-20T11:30:05Z") },
{ _id: 2, type: "vanilla", orderDate: new ISODate("2021-01-15T06:31:15Z") }
] )

次の例では、orderDate$lt 演算子に指定された ISODate より以前のドキュメントを返します。

db.cakeSales.find( { orderDate: { $lt: ISODate("2021-02-25T10:03:46.000Z") } } )

出力例:

[
{
_id: 0,
type: 'chocolate',
orderDate: ISODate("2020-05-18T14:10:30.000Z")
},
{
_id: 2,
type: 'vanilla',
orderDate: ISODate("2021-01-15T06:31:15.000Z")
}
]

戻る

BulkWriteResult