Comments 3
Так что делать, если нужен упорядоченный айди внутри без раскрытия метки времени наружу?
В статье как раз есть блок про разделение внутреннего _id и публичного public_id:
Если нужен упорядоченный ID внутри — оставляем его внутренним ключом: ObjectId, UUIDv7 или другой вариант, отсортированный по временной метке, чтобы индексу было удобно.
А наружу отдаём отдельный public_id: случайный UUIDv4 или что-то, что не раскрывает время создания.
ObjectId ценен монотонностью, не размером: timestamp в первых байтах даёт последовательную вставку в B-tree. UUIDv4 фрагментирует индекс, UUIDv7 решает проблему, но миграция болезненна.
Sign up to leave a comment.
ObjectId против UUID: как выбор _id в MongoDB влияет на API, индексы и миграции