Reputation: 487
I want to put in a "User" class datas from MongoDB. find()
method doesn't return the type I want.
I have a piece of code, I don't know how i can use it :
def findUser(username: String) : Option[User] =
{
var user:Option[User] = None
val userToFind = MongoDBObject("username" -> username)
users.findOne(userToFind).foreach { x =>
user = Some(new User(x("username").toString,x("password").toString,x("firstname").toString, x("lastname").toString, true,2))
}
user
}
How to use my result to put into my object parameters ?
this is my Object User :
class User (
val username : String,
var password : String,
var firstname : String,
var lastname : String,
var isActivated : Boolean,
val tenantId : Int
)
{}
Upvotes: 0
Views: 798
Reputation: 2468
for example like this:
def findUser(username: String): Option[User] = {
val result = mongoCollUser.findOne(MongoDBObject("username"->username));
result.map { user => toUser(user) }
}
def toUser(dbObject:DBObject) : User = {
User(dbObject.as[String]("username"),dbObject.as[String]("password"),dbObject.as[String]("firstname"),dbObject.as[String]("lastname"),dbObject.as[Boolean]("isActivated"),dbObject.as[Int]("tenantId"))
}
case class User (
val username : String,
var password : String,
var firstname : String,
var lastname : String,
var isActivated : Boolean,
val tenantId : Int
)
Upvotes: 4