English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В предыдущих главах мы постоянно использовали ObjectId MongoDB. В этой главе мы узнаем структуру ObjectId.
ObjectId - это BSON-тип длиной в 12 байт, имеющий следующую структуру-
Первые 4 байта представляют собой количество секунд с момента unix-нового века
Следующие 3 байта - это идентификатор машины
Следующие 2 байта состоят из идентификатора процесса
Последние 3 байта - это случайное значение счетчика
MongoDB использует ObjectId для_id
Значение по умолчанию для каждого поля документа, которое генерируется при создании любого документа. Комплексное сочетание ObjectId обеспечивает уникальность всех полей _id.
Чтобы сгенерировать новый 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 в строку используйте следующий код
>newObjectId.str
Следующий код вернет строковый формат Guid-а
5349b4ddd2781d08c09890f3