Кстати, в реализации ObjectId есть инкремент на уровне процесса. Т.е. один процесс физически не может сгенерировать два одинаковых айдишника. Вот и добавте к вероятности коллиции то, что вам надо наплодить прямо-таки туеву хучу процессов.
Кстати, в реализации ObjectId есть инкремент на уровне процесса. Т.е. один процесс физически не может сгенерировать два одинаковых айдишника. Вот и добавте к вероятности коллиции то, что вам надо наплодить прямо-таки туеву хучу процессов.
ну логичнее было бы pid замешать тогда, потому что получить коллизию таймштампа проще в параллельных процессах
ну вот да, мне поэтому больше нравится подход когда нет никакого дала, а объект сам за собой следит, get_by_id тогда приобретает смысл что id управляется клиентом и не связан с id в базе данных (и не является PK, что отдельный бонус), а id в базе занимается уже ОРМ или код который вместо него, и он остается деталью реализации, а пользовательский id тоже можно обвешать индексами и сделать быстрым