это то же самое поведение, которое вы получаете с другими ORM, например SQLite ... #new не создает ID, потому что новый объект еще не был сохранен / сохранен!
Всякий раз, когда происходит сохранение, следующий доступный идентификатор используется для вновь сохраненного объекта ... это означает, что если у вас есть пара новых объектов, вы не можете назначить им идентификатор, пока они не будут сохранены, поскольку идентификатор зависит порядок их сохранения в ..
Идентификаторы MongoDB не увеличиваются как идентификаторы в базах данных SQL, но они содержат метку времени как часть ключа ... отсюда снова зависимость от порядка сохранения / сохранения объектов
Кроме того: идентификаторы имеют смысл только как ссылку на сохраненные объекты - вы можете создавать объекты с помощью #new и в конечном итоге не сохранять их - не имеет смысла присваивать идентификатор несохраненному объекту.