MongoDB ObjectId
В первых нескольких главах мы использовали MongoDB объект Id (ObjectId).
В этом разделе мы рассмотрим структуру ObjectId.
ObjectId BSON это тип данных, 12-байт, имеет следующий формат:
- Первые четыре байта временной метки
- Следующие три байта машинного кода
- Сразу два байта, составленные идентификатор процесса (PID)
- Последние три байта случайных чисел.
MongoDB документы, хранящиеся там должен быть ключ "_id". Значение этого ключа может быть любого типа, по умолчанию ObjectId объект.
В один комплект внутри каждого документа имеет уникальный "_id" значение, чтобы обеспечить сбор внутри каждого документа может быть однозначно определены.
MongoDB использует ObjectId, но не является основной причиной других, более традиционный подход (например, первичный ключ автоинкрементируемого), так как значение первичного ключа автоматически увеличивается синхронизацию между несколькими серверами также отнимает много времени и трудоемким.
Создать новую ObjectId
Используйте следующий код для создания нового ObjectId:
>newObjectId = ObjectId()
Выше оператор возвращает следующий однозначно сгенерированный идентификатор:
ObjectId("5349b4ddd2781d08c09890f3")
Вы можете также использовать сгенерированный идентификатор вместо MongoDB автоматически генерируется ObjectId:
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
Создание временных меток документов
Так как ObjectId хранятся в четырех байтах штамп времени, так что вам не нужно, чтобы сохранить поле временной метки для ваших документов, вы можете создать время, чтобы получить документы от функции getTimestamp:
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
Приведенный выше код будет возвращать время создания документа формата ISO:
ISODate("2014-04-12T21:49:17Z")
ObjectId преобразуется в строку
В некоторых случаях, возможно, потребуется преобразовать строку ObjectId формат. Вы можете использовать следующий код:
>new ObjectId().str
Приведенный выше код будет возвращать строку формата Guid ::
5349b4ddd2781d08c09890f3