Latest web development tutorials

MongoDBののObjectId

最初の数章では、MongoDBのオブジェクトID(のObjectId)を使用しています。

このセクションでは、我々はのObjectIdの構造を見ていきます。

ObjectId BSONは、12バイトのデータ型であるの形式は次のとおりです。

  • 最初の4バイトのタイムスタンプ
  • マシンコードの次の3バイトであります
  • プロセスID(PID)で構成直後の2バイト
  • 乱数の最後の3バイト。

格納されたMongoDBのドキュメントは "_id"キーが存在しなければなりません。 このキーの値は、任意のタイプにすることができ、デフォルトはのObjectIdオブジェクトです。

各ドキュメント内部一組内の各ドキュメント内の収集を確実にするために、独自の「_id」の値を持つ一意に識別することができます。

MongoDBはのObjectIdを使用しますが、主キーの値が自動的に複数のサーバー間の同期を増大するため(このような自動インクリメントの主キーなど)ではない主な理由は、他のより従来のアプローチは、また、時間がかかり、面倒です。


新しいのObjectIdを作成します。

新しいのObjectIdを生成するために、次のコードを使用します。

>newObjectId = ObjectId()

上記の文は次の一意に生成されたIDを返します。

ObjectId("5349b4ddd2781d08c09890f3")

また、代わりに自動的にObjectIdを生成するMongoDBの生成されたIDを使用することができます。

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

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

ObjectIdので、タイムスタンプの4バイトに格納されているので、あなたは、あなたがgetTimestamp機能により文書を取得する時間を作成することができ、あなたの文書にタイムスタンプフィールドを保存する必要はありません。

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

上記のコードは、ISO形式の文書の作成時間を返します。

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

ObjectIdを文字列に変換しました

いくつかのケースでは、文字列のObjectId形式を変換する必要があるかもしれません。 次のコードを使用することができます。

>new ObjectId().str

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

5349b4ddd2781d08c09890f3