mercoledì 13 aprile 2011

Scala e MongoDB

Dal sito ufficiale di MongoDB si apprende che Casbah è il driver ufficiale per Scala per MongoDB. Queste API sono molto di basso livello, in quanto wrappano il driver JAVA per MongoDB. Ad esempio, per creare un utente nella nostra collection per MongoDB dobbiamo scrivere una cosa del genere:

val onof80 = MongoDBObject("userName" -> "onof80",
                           "openId" -> "http://.....",
                           "age" -> 31,
                           "interests" -> "Java,Scala")

che si mappa in un oggetto JSON simile a questo:
{ 
  userName : "onof80",
  openId : "http://.....",
  age : 31,
  interests: "Java,Scala"
}
Interessante, ma sono abituato a mongo-scala-driver, che mi permette di definire una classe per l'oggetto User:
class User(
   userName : String, 
   openId : String,
   age : Option[Int], 
   interests : String
) extends MongoObject {
     override def toString: String = userName
}
e quindi, al prezzo di un companion object che ometto, di riutilizzarlo:
val onof80 = new User("onof80", "http://.....", 31, "Java,Scala");

(dbCollection of User) += onof80;

Nessun commento: