【发布时间】:2022-10-23 20:24:18
【问题描述】:
我正在使用 ktor 和 MongoDB 作为我的 android 项目的后端。插入文档时,确认返回 true,但是当我得到 InsertedId 时,尽管已插入数据库,但它返回 null。我需要插入的 id,以便我可以将其存储在 session 中,并将插入的带有 id 的对象返回给 android .我是 MongoDB 新手,可能做错了什么。
这是我在 ktor 中的 POJO 课程
@Serializable
data class User(
@BsonId
val _id: String? = ObjectId.get().toString(),
val username: String,
val password: String,
val salt: String
)
这是我的存储库Impl
class MongoUserDataSource(
db: CoroutineDatabase
): UserDataSource {
private val users = db.getCollection<User>()
override suspend fun getUserByUsername(username: String): User? {
return users.findOne(User::username eq username)
}
override suspend fun insertUser(user: User): BsonValue? {
return users.insertOne(user).insertedId
}
override suspend fun getUser(userId: String): User? {
return users.findOneById(userId)
}
}
【问题讨论】: