ObjectId()
説明
ObjectId(<value>)
重要
mongosh メソッド
これは
mongosh
メソッドです。 これは、Node.js
またはその他のプログラミング言語固有のドライバー メソッドのドキュメントではありません。ほとんどの場合、
mongosh
メソッドはレガシーのmongo
shell メソッドと同じように動作します。 ただし、一部のレガシー メソッドはmongosh
では利用できません。レガシー
mongo
shell のドキュメントについては、対応する MongoDB Server リリースのドキュメントを参照してください。MongoDB API ドライバーについては、各言語のMongoDB ドライバードキュメント を参照してください。
新しい ObjectId を返します。12 バイトの ObjectId は次の要素で構成されています。
Unix エポックからの秒数で測定される ObjectId の作成を表す 4 バイトのタイムスタンプ。
プロセスごとに 1 回生成される 5 バイトのランダム値。このランダム値はマシンとプロセスに固有です。
ランダム値で初期化される 3 バイトのインクリメント カウンター。
タイムスタンプとカウンターの値では、最上位バイトがバイトシーケンスの最初に表示されます(ビッグエンディアン)。これは、再下位バイトが最初に表示される(リトルエンディアン)他の BSON 値との相違点です。
ObjectId の作成に整数値が使用される場合は、その整数がタイムスタンプに置き換わります。
互換性
次の環境でホストされる配置には ObjectId()
を使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
ObjectId()
は、次のいずれかを入力として使用できます。
入力タイプ | 説明 |
---|---|
hexadecimal | 任意。新しい ObjectId の 24 文字の 16進数文字列値。 |
integer | 任意。整数値(秒単位)が UNIXエポック に追加され、新しいタイムスタンプが作成されます。 |
メソッド
ObjectId()
には以下のメソッドがあります。
メソッド | 説明 |
---|---|
オブジェクトのタイムスタンプ部分を Date で返します。 | |
ObjectId を 16進数文字列 として返します。 |
動作
MongoDB 5.0 以降、mongosh
は、レガシーの mongo
shell を置き換えます。ObjectId()
メソッドは、mongosh
とレガシー shell の mongo
では異なる動作をします。レガシー メソッドの詳細については、「レガシー mongo Shell」を参照してください。
例
新しい ObjectId の生成
新しい ObjectId を生成するには、引数なしでObjectId()
を使用します。
newObjectId = ObjectId()
この例では、newObjectId
の値は次のとおりです。
ObjectId("507f1f77bcf86cd799439011")
16進数文字列を返す
ObjectId を 16進数文字列として返すには、 toString()
メソッドを使用します。
ObjectId("507f191e810c19729de860ea").toString()
このメソッドは以下を返します。
507f191e810c19729de860ea
日付を指定
カスタム Date を使用してObjectId を指定できます。
指定した日付の変数を設定
内部的には、 Date オブジェクトは、64 UNIX エポック からのミリ秒数を表す符号付き ビット整数として保存されます。 。詳しくは、 Date()
を参照してください。
myDate = new Date( "2024-01-01" )
を引数として新しい ObjectId を設定します<a class=\" \" href=\" \" title=\" \"><svg xmlns=\"timestamp
\" width=\" \" height=\" \" fill=\" \" viewbox=\" \" class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\" \"> <path fill=\" \" d=\" \">
ObjectId.getTimestamp()
を使用して日付を確認できます。
newObjectId = ObjectId(timestamp)
ObjectId("6592008029c8c3e4dc76256c")
整数文字列の指定
ObjectId のタイムスタンプを調整したい場合は、整数を使用して新しい ObjectId を生成します。
newObjectId = ObjectId(32)
ObjectId の値は次のようになります。
ObjectId("00000020f51bb4362eee2a4d")
例で示した ObjectId は、次のように構成されています。
4 バイトのタイムスタンプ、
00000020
5 バイトのランダム要素、
f51bb4362e
3 バイトのカウンター、
ee2a4d
ObjectId の最初の 4 バイトは UNIXエポックからの秒数です。この例では、ObjectId タイムスタンプは 00000020
、16 進数では 32
になります。
16進数文字列の指定
16進文字列を使用して ObjectId を指定する場合は、ObjectId()
を呼び出す際に、ユニークな24文字の16進値を渡します。
newObjectId = ObjectId("507f191e810c19729de860ea")