2012-04-30 15 views
6

So che gli oggetti in MongoDB possono contenere più livelli di dati (proprio come gli oggetti JSON possono). Tuttavia, il tutorial del driver Casbah copre solo la creazione di oggetti "piatti", dove c'è solo un livello di dati. Come posso creare e lavorare con oggetti multilivello con Casbah?Casbah Scala MongoDB driver - oggetti incorporati

risposta

9

È piuttosto intuitivo.

costruzione:

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

accesso ai campi interni with dot notation:

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

recupero di oggetto interno come DBOBJECT, in modo da poter effettuare le stesse operazioni con esso come con oggetto padre:

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

Nota: per il corretto funzionamento, ricordarsi di importare com.mongodb.casbah.commons.MongoDBObject, com.mo ngodb.casbah.commons.BaseImports._, com.mongodb.casbah.Implicits._ e com.mongodb.DBObject. – Haakon

+1

Penso che tu possa importare com.mongodb.casbah.commons.Imports._'. Questo importerà DBObject, MongoDBObject e le funzioni di conversione implicita. L'ho letto da qualche parte nei documenti della casbah. – user573215

+0

Come si ottiene il funzionamento di '.as []'? Ho bisogno di '.asInstanceOf []'. È la stessa cosa? – akauppi

Problemi correlati