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

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()を使用します。

newObjectId = ObjectId()

この例では、newObjectId の値は次のとおりです。

ObjectId("507f1f77bcf86cd799439011")

ObjectId を 16進数文字列として返すには、 toString() メソッドを使用します。

ObjectId("507f191e810c19729de860ea").toString()

このメソッドは以下を返します。

507f191e810c19729de860ea

カスタム Date を使用してObjectId を指定できます。

1

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

myDate = new Date( "2024-01-01" )
2
timestamp = Math.floor( myDate / 1000 )
3

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進文字列を使用して ObjectId を指定する場合は、ObjectId()を呼び出す際に、ユニークな24文字の16進値を渡します。

newObjectId = ObjectId("507f191e810c19729de860ea")

Tip

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

戻る

日付