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 のバージョン
構文
次のいずれかの形式を指定できます。
Date()現在の日付を文字列としてmongoshに返します。
特定の日付を指定するには、 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
集計パイプラインで更新するためのNOW 集計変数の使用方法
日付を文字列として返す
日付を文字列として返すには、Date() メソッドを使用します。例は次のとおりです。
var myDateString = Date();
日付を Date オブジェクトとして返す
mongoshは、Date型のオブジェクトをISODateヘルパーでラップします。ただし、オブジェクトはDateタイプです。
次の例では、new Date() を使用して、指定された UTC 日時を持つ Date オブジェクトを返します。
var myDate = new Date("2016-05-18T16:00:00Z");
ISODate オブジェクトを挿入して返す
日付を 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') } ]