# The MongoDB\BSON\ObjectId class

(mongodb >=1.0.0)

## Introduction

Type BSON pour un » ObjectId. La valeur se compose de 12 octets, où les quatre premiers octets sont un timestamp qui reflètent la création de l'ObjectId. Plus précisément, la valeur se compose de :

- une valeur de 4 octets représentant les secondes depuis l'époque UNIX,
- un nombre aléatoire de 5 octets unique à une machine et un processus, et
- un compteur de 3 octets, commençant par une valeur aléatoire.

Dans MongoDB, chaque document stocké dans une collection requiert un champ `_id` unique qui agit comme clé primaire. Si un document inséré omet le champ `_id`, l'extension génère automatiquement un ObjectId pour le champ `_id`.

L'utilisation d'ObjectId pour le champ `_id` fournit les avantages supplémentaires suivants:

- L'heure de création de l'ObjectId peut être accédée à l'aide de la méthode MongoDB\BSON\ObjectId::getTimestamp().
- Le tri sur un champ `_id` qui stocke des valeurs ObjectId équivaut à peu près au tri par date de création.

## Synopsis de la classe

final class MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface, MongoDB\BSON\Type, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(?string `$id` = `null`)
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public __toString(): string
}

## Historique

Version | Description
--- | ---
PECL mongodb 2.0.0 | Cette classe n’implémente plus l'interface Serializable.
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+.
PECL mongodb 1.3.0 | Renommé de `MongoDB\BSON\ObjectID` vers `MongoDB\BSON\ObjectId`. Implémente MongoDB\BSON\ObjectIdInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

## Sommaire

- MongoDB\BSON\ObjectId::__construct — Construit un nouvel ObjectId
- MongoDB\BSON\ObjectId::getTimestamp — Retourne le composant d'horodatage de ObjectId
- MongoDB\BSON\ObjectId::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
- MongoDB\BSON\ObjectId::__toString — Retourne la représentation hexadécimale de cet ObjectId