HOW TO Find by Object ID on MongoDB with Casbah ?
I'm trying to write a query to find by Object ID with Casbah, it seems trivial but ... I don't find.

I tried this:

    def get(id: Option[String]): User = { 
        val mongoDB : MongoDB = MongoConnection().apply("test")
        val mongoColl : MongoCollection = mongoDB.apply("users")
        val objectId = id.getOrElse().asInstanceOf[String]
        val o : DBObject = MongoDBObject("_id" -> objectId)
        val u = mongoColl.findOne(o)
        val user = new User()
        for(x <- u){
        	 user.id = x.getAs[String]("_id")
        	 user.username = x.getAs[String]("username")
        	 user.password = x.getAs[String]("password")
        }
        user
    }
and this:

    def get(id: Option[String]): User = { 
            val mongoDB : MongoDB = MongoConnection().apply("test")
            val mongoColl : MongoCollection = mongoDB.apply("users")
            val objectId = "ObjectId(\"" +id.getOrElse().asInstanceOf[String] + "\")"
            val o : DBObject = MongoDBObject("_id" -> objectId)
            val u = mongoColl.findOne(o)
            val user = new User()
            for(x <- u){
            	 user.id = x.getAs[String]("_id")
            	 user.username = x.getAs[String]("username")
            	 user.password = x.getAs[String]("password")
            }
            user
        }

This compile and run but no result.
I also tried this:

    def get(id: Option[String]): User = { 
        val mongoDB : MongoDB = MongoConnection().apply("test")
        val mongoColl : MongoCollection = mongoDB.apply("users")
        val objectId : ObjectId = id.getOrElse().asInstanceOf[ObjectId]
        val o : DBObject = MongoDBObject("_id" -> objectId)
        val u = mongoColl.findOne(o)
        val user = new User()
        for(x <- u){
        	 user.id = x.getAs[String]("_id")
        	 user.username = x.getAs[String]("username")
        	 user.password = x.getAs[String]("password")
        }
        user
    }

But this one doesn't compile because String cannot be cast to ObjectId.

    java.lang.ClassCastException: java.lang.String cannot be cast to org.bson.types.ObjectId

Thank you for your help :)

HOW TO Find by Object ID on MongoDB with Casbah ?
===

I'm trying to write a query to find by Object ID with Casbah, it seems trivial but ... I don't find.

I tried this:

    def get(id: Option[String]): User = { 
        val mongoDB : MongoDB = MongoConnection().apply("test")
        val mongoColl : MongoCollection = mongoDB.apply("users")
        val objectId = id.getOrElse().asInstanceOf[String]
        val o : DBObject = MongoDBObject("_id" -> objectId)
        val u = mongoColl.findOne(o)
        val user = new User()
        for(x <- u){
        	 user.id = x.getAs[String]("_id")
        	 user.username = x.getAs[String]("username")
        	 user.password = x.getAs[String]("password")
        }
        user
    }
and this:

    def get(id: Option[String]): User = { 
            val mongoDB : MongoDB = MongoConnection().apply("test")
            val mongoColl : MongoCollection = mongoDB.apply("users")
            val objectId = "ObjectId(\"" +id.getOrElse().asInstanceOf[String] + "\")"
            val o : DBObject = MongoDBObject("_id" -> objectId)
            val u = mongoColl.findOne(o)
            val user = new User()
            for(x <- u){
            	 user.id = x.getAs[String]("_id")
            	 user.username = x.getAs[String]("username")
            	 user.password = x.getAs[String]("password")
            }
            user
        }

This compile and run but no result.
I also tried this:

    def get(id: Option[String]): User = { 
        val mongoDB : MongoDB = MongoConnection().apply("test")
        val mongoColl : MongoCollection = mongoDB.apply("users")
        val objectId : ObjectId = id.getOrElse().asInstanceOf[ObjectId]
        val o : DBObject = MongoDBObject("_id" -> objectId)
        val u = mongoColl.findOne(o)
        val user = new User()
        for(x <- u){
        	 user.id = x.getAs[String]("_id")
        	 user.username = x.getAs[String]("username")
        	 user.password = x.getAs[String]("password")
        }
        user
    }

But this one doesn't compile because String cannot be cast to ObjectId.

    java.lang.ClassCastException: java.lang.String cannot be cast to org.bson.types.ObjectId

Thank you for your help :)
