Я новичок в mongodb и переполнении стека.
Я хочу знать, почему идентификатор коллекции mongodb имеет 24 шестнадцатеричных символа? Какова важность этого?
Я новичок в mongodb и переполнении стека.
Я хочу знать, почему идентификатор коллекции mongodb имеет 24 шестнадцатеричных символа? Какова важность этого?
_id
шестнадцатеричная строка в 24 символа?Уникальный идентификатор по умолчанию, сгенерированный как первичный ключ (_id
) для документа MongoDB, представляет собой ObjectId. Это 12-байтовое двоичное значение, которое часто представляется как шестнадцатеричная строка 24 символа, и один из стандартных типов полей, поддерживаемых спецификацией MongoDB BSON.
12 байтов ObjectId создаются с использованием:
ObjectIds (или аналогичные идентификаторы, сгенерированные в соответствии с формулой GUID) позволяют независимо создавать уникальные идентификаторы в распределенной системе.
Возможность самостоятельного создания уникального идентификатора становится очень важной, поскольку вы масштабируетесь до нескольких серверов приложений (или, возможно, нескольких узлов базы данных в кластере sharded cluster). Вы не хотите иметь узкое место в центре координации, например, счетчик последовательности (например, как вы могли бы использовать для автоматического прироста первичного ключа), и вы захотите вставить новые документы без риска того, что новый идентификатор окажется дублировать.
ObjectId обычно генерируется вашим клиентом MongoDB , но также может быть сгенерирован на сервере MongoDB, если ваш драйвер клиента или код приложения или еще не добавлены a _id
.
Нет. Если у вас есть более подходящий уникальный идентификатор, вы всегда можете указать свое собственное значение для _id
. Это может быть либо одно значение, либо составное значение с использованием нескольких полей.
Основные ограничения на значения _id
заключаются в том, что они должны быть уникальными для коллекции, и вы не можете обновить или удалить _id
для существующего документа.