Если вы пытаетесь сделать свой доменный уровень чистым и свободным от проблем постоянства, то имеет смысл заполнить дату создания самостоятельно в доменном слое , когда вы решите создать объект, а неполагаясь на технологию базы данных, чтобы поставить метку времени сервера.
Это делает «дату создания» концепцией логической области, а не концепцией БД «отметка времени при первом сохранении в БД».Они могут различаться, например, в случаях переноса данных (но с сохранением отметки времени), отсрочки выполнения (например, в заданиях) и т. Д.
Это также создает здоровое разделение между «физической отметкой времени» и «логической отметкой времени», котораявы можете в дальнейшем использовать его во время тестирования / насмешки (например, у вас может быть тест, который говорит: «сделай X, затем измени логическое время на 2 дня в будущем, затем утверждай Y»).
Наконец, это заставляет васдумать о том, что означает дата создания в вашем доменном слое, а не слепо предполагать, что она будет правильной.
Все это, как говорится, если вы настаиваете на наличии его в MongoDB, у вас может быть отображение, которое создает ObjectID в некое скрытое поле (например, явно реализованный интерфейс) во время вставки и извлекает его метку временив поле CreationDate во время чтения.