我正在使用ktor和MongoDB作为我的一个android项目的后端。当插入一个文档时,确认返回true,但是当我得到InsertedId时,它返回null,尽管已经插入到数据库中。我需要插入的id,这样我就可以在会话中存储它,并且还可以将插入的对象和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)
}
}
1条答案
按热度按时间2exbekwf1#
当您执行
findById
时,我相信您希望使用ObjectId
而不是字符串值进行搜索。和
getUser
,就像这样希望这对你有帮助!