Kotlin Kmongo inserta y devuelve el elemento insertado

Intenté hacer un proyecto ficticio limpio en Kotlin para practicar, pero como hace Java, Kotlin lo hace de la misma manera que el método de inserción. Pensé que sería otra forma de insert y recuperar el artículo, no de la manera anterior, para hacer 2 requestes.

fun insert(book: Book) : Book? { getByEan(book.EAN)?.let { return null } mongo.collection.insertOne(book) return getByEan(book.EAN) } 

Entonces, en este caso, realicé una comprobación previa para no hacer los artículos con el mismo EAN y luego, si lo conseguí, devolví el ítem insertado.

¿Puede ser más simple? ¿Tal vez la verificación previa realizada con un índice o de alguna manera recuperar el elemento insertado sin una nueva request?

 fun insert(book: Book) : Book? { getByEan(book.EAN)?.let { return null } return book.apply { mongo.collection.insertOne(book) } } data class Book(val name: String, val EAN: Int, val author: String, val _id: String? = null) 

Al agregar un campo _id al model de datos después de la inserción, establecerá el valor con el ID generado. En este caso, este fragment de código devolverá el object insertado como yo quería sin una request adicional a la database.