2012-04-30 2 views
6

Я знаю, что объекты в MongoDB могут содержать несколько уровней данных (как раз объекты JSON могут). Однако учебник драйвера Casbah охватывает только создание «плоских» объектов, где имеется только один уровень данных. Как я могу создавать и работать с многоуровневыми объектами с помощью Casbah?Casbah Scala MongoDB драйвер - встроенные объекты

ответ

9

Его довольно интуитивно понятный.

конструкция:

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

доступ к внутренним полям with dot notation:

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

поиска внутреннего объекта как DBObject, так что вы можете сделать те же операции с ним как с родительским объектом:

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

Примечание: для этого необходимо не забудьте импортировать com.mongodb.casbah.commons.MongoDBObject, com.mo ngodb.casbah.commons.BaseImports._, com.mongodb.casbah.Implicits._ и com.mongdb.DBObject. – Haakon

+1

Я думаю, что вы можете «импортировать com.mongodb.casbah.commons.Imports._'. Это будет импортировать DBObject, MongoDBObject и неявные функции преобразования. Я читал, что где-то в каббадах. – user573215

+0

Как вы получите '.as []' для работы? Мне нужно '.asInstanceOf []'. Это одно и то же? – akauppi

Смежные вопросы