मैं कैस्बा के साथ ऑब्जेक्ट आईडी द्वारा खोजने के लिए एक प्रश्न लिखने की कोशिश कर रहा हूं, यह मामूली लगता है लेकिन ... मुझे नहीं मिला।Casbah के साथ MongoDB पर ऑब्जेक्ट आईडी द्वारा कैसे खोजें?
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
}
और इस:
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
}
यह संकलन और चलाने, लेकिन कोई परिणाम
मैं इस कोशिश की। मैं भी इस की कोशिश की:
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
}
लेकिन यह एक संकलन नहीं है क्योंकि स्ट्रिंग ObjectId में ढाला नहीं जा सकता है।
java.lang.ClassCastException: java.lang.String cannot be cast to org.bson.types.ObjectId
आपकी मदद :) के लिए धन्यवाद
ठीक है धन्यवाद @ एमसीएडम्स। अब यह काम कर रहा है! उपयोगकर्ता = { वैल MongoDB: 'डीईएफ़ (: विकल्प [स्ट्रिंग] आईडी) मिलता है। MongoDB = MongoConnection() लागू (" परीक्षण ") वैल mongoColl: MongoCollection = mongoDB.apply (" उन ") वैल objectId : ऑब्जेक्टआईडी = नया ऑब्जेक्ट आईडी (id.getOrElse()। AsInstanceOf [स्ट्रिंग]) वैल उपयोगकर्ता = नया उपयोगकर्ता() वैल ओ: DBObject = MongoDBObject ("_ id" -> objectId) val u = mongoColl.findOne (o) (x <- u) { user.id = x.getAs [स्ट्रिंग] ("_ id") user.fullname = x.getAs [स्ट्रिंग] ("पूर्णनाम") user.username = x.getAs [ स्ट्रिंग] ("उपयोगकर्ता नाम") } उपयोगकर्ता } ' – Remy
आप भी कर सकते हैं mongoColl.findOne (id.get) करो – David