MongoDB チュートリアルlogin
MongoDB チュートリアル
著者:php.cn  更新時間:2022-04-21 17:49:03

MongoDB オブジェクト ID



前の章では、MongoDB のオブジェクト ID (ObjectId) を使用しました。

この章では、ObjectId の構造を理解します。

ObjectId は、次の形式の 12 バイトの BSON 型データです:

  • 最初の 4 バイトはタイムスタンプを表します

  • 次の 3 バイトはマシン識別コードです

    ​​
  • その後に 2 バイトが続きますプロセス ID (PID) の

  • 最後の 3 バイトは乱数です。

MongoDB に保存されるドキュメントには「_id」キーが必要です。このキーの値は任意の型にすることができ、デフォルトは ObjectId オブジェクトです。

コレクション内の各ドキュメントを一意に識別できるように、コレクション内の各ドキュメントには一意の「_id」値があります。

MongoDB が他の従来の方法 (自動的に増加する主キーなど) の代わりに ObjectId を使用する主な理由は、次のとおりです。 サーバー上の主キー値を同期して自動的に増やすことは、手間と時間がかかります。


新しい ObjectId を作成する

次のコードを使用して新しい ObjectId を生成します:

>newObjectId = ObjectId()

上記のステートメントは、次の一意に生成された ID を返します:

ObjectId("5349b4ddd2781d08c09890f3")

生成された ID を使用して、MongoDB によって自動的に生成された ObjectId を置き換えることもできます。

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

ドキュメント作成のタイムスタンプ

ObjectId は 4 バイトのタイムスタンプを保存するため、ドキュメントのタイムスタンプ フィールドを保存する必要はありません。getTimestamp 関数を通じてドキュメントの作成時刻を取得できます:

>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()

上記のコードは、ISO 形式でドキュメントの作成時間を返します:

ISODate("2014-04-12T21:49:17Z")

ObjectId を文字列に変換

場合によっては、ObjectId を文字列形式に変換する必要がある場合があります。次のコードを使用できます:

>new ObjectId().str

上記のコードは、Guid 形式の文字列を返します:

5349b4ddd2781d08c09890f3

PHP中国語ウェブサイト