2012-04-30 11 views
6

Sé que los objetos en MongoDB pueden contener múltiples niveles de datos (exactamente como pueden hacerlo los objetos JSON). Sin embargo, el tutorial del controlador de Casbah solo cubre la creación de objetos "planos", donde solo hay un nivel de datos. ¿Cómo puedo crear y trabajar con objetos multinivel con Casbah?Controlador Casbah Scala MongoDB - objetos incrustados

Respuesta

9

Es bastante intuitivo.

construcción:

val a: MongoDBOBject = DBObject("a" -> DBObject("b" -> "c")) 
// results in { "a" : { "b" : "c"}} 

acceso a los campos interiores with dot notation:

val c = a.expand[String]("a.b") 

recuperación de objeto interno como dbobject, para que pueda hacer las mismas operaciones con él como con objeto padre:

val b = a.as[DBObject]("a") 
+3

Nota: para que esto funcione, recuerde importar com.mongodb.casbah.commons.MongoDBObject, com.mo ngodb.casbah.commons.BaseImports._, com.mongodb.casbah.Implicits._, y com.mongodb.DBObject. – Haakon

+1

Creo que puedes 'importar com.mongodb.casbah.commons.Imports._'. Esto importará DBObject, MongoDBObject y funciones de conversión implícitas. Lo leí en algún lugar de los documentos de casbah. – user573215

+0

¿Cómo se consigue que '.as []' funcione? Necesito '.asInstanceOf []'. ¿Es la misma cosa? – akauppi

Cuestiones relacionadas