English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
前の章では、MongoDBのObjectIdを使用していました。本章では、ObjectIdの構造について学びます。
ObjectIdは以下のようになります12バイトのBSON形式は以下の構造を持っています-
前4バイトはUnix新世紀からの秒数を表します
次に3バイトはマシン識別子です
次に2バイトはプロセスIDで構成されています
最後に3バイトはランダムなカウンタ値です
MongoDBはObjectIdsを使用しています_id
各ドキュメントフィールドのデフォルト値は、ドキュメントを生成する際に生成されます。ObjectIdの複雑な組み合わせにより、すべての_idフィールドがユニークになります。
新しいObjectIdを生成するには以下のコードを使用してください-
>newObjectId = ObjectId()
上記の文は以下のユニークに生成されたIDを返します-
ObjectId("5349b4ddd2781d08c09890f3")
除いて、MongoDBが生成するObjectIdを提供する以外に、12バイトのID-
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
由于_id ObjectIdはデフォルトで4バイトのタイムスタンプは、ほとんどの場合、ドキュメントの作成時間を保存する必要はありません。getTimestampメソッドを使用してドキュメントの作成時間を取得できます-
>ObjectId("5349b4ddd2781d08c09890f4).getTimestamp()
これによりISO日付形式でこのドキュメントの作成時間が返されます-
ISODate("2014-04-12T21:49:17Z")
ある場合、String形式のObjectId値が必要になるかもしれません。ObjectIdを文字列形式に変換するには以下のコードを使用してください-
>newObjectId.str
上記のコードはGuidの文字列形式を返します-
5349b4ddd2781d08c09890f3