我只是想在Kotlin做一个干净的虚拟项目来练习,但是就像Java一样,Kotlin的插入方法也是这样。我认为它会以其他方式插入和取回项目而不是旧的方式来发出2个请求。
fun insert(book: Book) : Book? {
getByEan(book.EAN)?.let {
return null
}
mongo.collection.insertOne(book)
return getByEan(book.EAN)
}
所以在这种情况下,我做了一个预检查,以便不对具有相同EAN的项目进行预测,然后如果成功则返回插入的项目。
可以更简单吗?也许用索引进行预检或以某种方式在没有新请求的情况下取回插入的项目?
答案 0 :(得分:1)
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)
通过在插入后向数据模型添加_id字段,它将使用生成的id设置值。在这种情况下,此代码段将根据需要返回插入的对象,而不向数据库发送加号请求。