MongoId クラス
(PECL mongo >=0.8.0)
導入
データベース用に作成した一意な識別子です。オブジェクトをデータベースに挿入するときに _id フィールドを指定しなければ、_id フィールドが追加されてその値は MongoId のインスタンスとなります。 データの中に必然的に一意になるフィールド (ユーザー名やタイムスタンプなど) があるのなら、それを _id フィールドの代わりに使うといいでしょう。 この場合は MongoId で置き換えられることはありません。
MongoId クラスのインスタンスは、 リレーショナルデータベースにおける自動インクリメントの役割を果たします。 つまり、データ自体が必然的にもつ一意なキーがない場合にそれを提供するということです。 自動インクリメントは共有データベースではうまく動作しません。 次の番号を瞬時に見つけることが不可能だからです。 このクラスは、共有環境であっても一意となる値をすばやく生成することができます。
MongoId は 12 バイトです (文字列形式にすると、十六進 24 桁となります)。 最初の 4 バイトはタイムスタンプ、次の 3 バイトはクライアントマシンのホスト名のハッシュ、 その次の 2 バイトはスクリプトを動かしているプロセス ID の下位バイト、 そして最後の 3 バイトはインクリメントする値となります。
MongoId はシリアライズ/アンシリアライズすることができます。 シリアライズした形式は、文字列形式と似ています。
C:7:"MongoId":24:{4af9f23d8ead0e1d32000000}
クラス概要
フィールド
- id
- このフィールドには、このオブジェクトの文字列表現が含まれます。
参考
MongoDB コアドキュメントの » id を参照ください。
目次
- MongoId::__construct — 新しい ID を作成する
- MongoId::getHostname — このマシンの id に使うホスト名を取得する
- MongoId::getInc — この id を作るためにインクリメントされた値を取得する
- MongoId::getPID — プロセス ID を取得する
- MongoId::getTimestamp — この id が作られたときのエポックからの経過秒数を取得する
- MongoId::__set_state — ダミー MongoId を作成する
- MongoId::__toString — この ID の 16 進表現を返す