# Класс MongoDB\BSON\ObjectId

(mongodb >=1.0.0)

## Введение

Класс представляет BSON-данные с типом » ObjectId. Значение состоит из 12 байтов, в которых первые четыре байта — метка времени, которая отражает время, в которое создали объект ObjectId. Подробный состав значения:

- 4-байтовое значение, которое представляет количество секунд, которое прошло с начала эпохи Unix
- 5-байтовое случайное число, которое уникально для машины и процесса
- 3-байтовый счётчик, который начинается со случайного значения

В БД MongoDB для каждого документа, который хранится в коллекции, требуется уникальное поле `_id`, которое играет роль первичного ключа. Модуль автоматически генерирует значение ObjectId для поля `_id`, если во вставленном документе нет поля `_id`.

Идентификаторы ObjectId для поля `_id` дают следующую дополнительную выгоду:

- У метода MongoDB\BSON\ObjectId::getTimestamp() будет доступ ко времени, в которое создали значение ObjectId.
- Сортировка по полю `_id`, которое хранит значения ObjectId, примерно эквивалентна сортировке по времени создания.

## Обзор класса

final class MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface, MongoDB\BSON\Type, JsonSerializable, Stringable {
/* Методы */
final public function __construct(?string `$id` = `null`)
final public function getTimestamp(): int
final public function jsonSerialize(): mixed
final public function __toString(): string
}

## Список изменений

Версия | Описание
--- | ---
PECL-модуль mongodb 2.0.0 | Класс больше не реализует интерфейс Serializable.
PECL-модуль mongodb 1.12.0 | Класс теперь реализует интерфейс Stringable для PHP 8.0+.
PECL-модуль mongodb 1.3.0 | Класс переименовали из `MongoDB\BSON\ObjectID` в `MongoDB\BSON\ObjectId`. Класс теперь реализует интерфейс MongoDB\BSON\ObjectIdInterface.
PECL-модуль mongodb 1.2.0 | Класс теперь реализует интерфейсы Serializable и JsonSerializable.

## Содержание

- MongoDB\BSON\ObjectId::__construct — Создаёт новый ObjectId
- MongoDB\BSON\ObjectId::getTimestamp — Возвращает метку времени ObjectId
- MongoDB\BSON\ObjectId::jsonSerialize — Возвращает преобразуемое в JSON-формат представление
- MongoDB\BSON\ObjectId::__toString — Возвращает шестнадцатеричное представление ObjectId

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open