English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Учебник MongoDB для начинающих

Учебник MongoDB для продвинутых

ObjectId в MongoDB

В предыдущих главах мы постоянно использовали ObjectId MongoDB. В этой главе мы узнаем структуру ObjectId.

ObjectId - это BSON-тип длиной в 12 байт, имеющий следующую структуру-

  • Первые 4 байта представляют собой количество секунд с момента unix-нового века

  • Следующие 3 байта - это идентификатор машины

  • Следующие 2 байта состоят из идентификатора процесса

  • Последние 3 байта - это случайное значение счетчика

MongoDB использует ObjectId для_idЗначение по умолчанию для каждого поля документа, которое генерируется при создании любого документа. Комплексное сочетание ObjectId обеспечивает уникальность всех полей _id.

Создание нового ObjectId

Чтобы сгенерировать новый ObjectId, используйте следующий код-

>newObjectId = ObjectId()

Эта команда возвращает следующий уникально сгенерированный идентификатор-

ObjectId("5349b4ddd2781d08c09890f3")

Кроме предоставления ObjectId, сгенерированного MongoDB, вы также можете предоставить ID длиной в 12 байт-

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

Время создания документа

Поскольку _id ObjectId по умолчанию хранит 4-байтовый временной штамп, в большинстве случаев вам не нужно хранить время создания документа. Вы можете использовать метод getTimestamp, чтобы получить время создания документа

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

Это вернет время создания документа в формате ISO даты

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

Преобразование ObjectId в строку

В некоторых случаях может потребоваться строковый формат ObjectId. Для преобразования ObjectId в строку используйте следующий код

>newObjectId.str

Следующий код вернет строковый формат Guid-а

5349b4ddd2781d08c09890f3