2012-04-30 34 views
6

Tôi biết rằng các đối tượng trong MongoDB có thể chứa nhiều mức dữ liệu (chỉ là cách các đối tượng JSON có thể). Tuy nhiên, hướng dẫn lái xe Casbah chỉ bao gồm việc tạo ra các đối tượng "phẳng", nơi chỉ có một mức dữ liệu. Làm thế nào tôi có thể tạo và làm việc với các đối tượng đa cấp với Casbah?Trình điều khiển Casbah Scala MongoDB - các đối tượng nhúng

Trả lời

9

Khá trực quan.

xây dựng:

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

quyền truy cập vào các lĩnh vực nội with dot notation:

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

hồi các đối tượng bên trong như DBObject, vì vậy bạn có thể làm cho các hoạt động cùng với nó như với đối tượng phụ huynh:

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

Lưu ý: để làm việc này, hãy nhớ nhập com.mongodb.casbah.commons.MongoDBObject, com.mo ngodb.casbah.commons.BaseImports._, com.mongodb.casbah.Implicits._ và com.mongodb.DBObject. – Haakon

+1

Tôi nghĩ bạn có thể nhập com.mongodb.casbah.commons.Imports._'. Thao tác này sẽ nhập các hàm chuyển đổi DBObject, MongoDBObject và hàm ẩn. Tôi đọc điều đó ở đâu đó trong tài liệu. – user573215

+0

Làm thế nào để bạn có được '.as []' để làm việc? Tôi cần '.asInstanceOf []'. Đó có phải là điều tương tự? – akauppi

Các vấn đề liên quan