Casbah Scala MongoDB驱动程序-嵌入式对象

Casbah Scala MongoDB驱动程序-嵌入式对象,scala,mongodb,casbah,Scala,Mongodb,Casbah,我知道MongoDB中的对象可以包含多个级别的数据(就像JSON对象一样)。但是,Casbah驱动程序教程仅介绍“平面”对象的创建,其中只有一个级别的数据。如何使用Casbah创建和使用多层次对象?非常直观 结构: val a: MongoDBOBject = DBObject("a" -> DBObject("b" -> "c")) // results in { "a" : { "b" : "c"}} 访问内部字段: 将内部对象检索为DBObject,以便您可以对其执行与父对象

我知道MongoDB中的对象可以包含多个级别的数据(就像JSON对象一样)。但是,Casbah驱动程序教程仅介绍“平面”对象的创建,其中只有一个级别的数据。如何使用Casbah创建和使用多层次对象?

非常直观

结构:

val a: MongoDBOBject = DBObject("a" -> DBObject("b" -> "c"))
// results in { "a" : { "b" : "c"}}
访问内部字段:

将内部对象检索为DBObject,以便您可以对其执行与父对象相同的操作:

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

注意:要使其正常工作,请记住导入com.mongodb.casbah.commons.MongoDBObject、com.mongodb.casbah.commons.BaseImports.\uu、com.mongodb.casbah.Implicits.\uu和com.mongodb.DBObject。我认为您可以
导入com.mongodb.casbah.commons.Imports.\u
。这将导入DBObject、MongoDBObject和隐式转换函数。我在casbah文档的某个地方读到了这一点。如何让
.as[]
工作?我需要
.a安装[]
。这是同一件事吗?@akauppi这是为MongoDBObject定义的方法,它的工作原理就像
apply()+asInstanceOf[]
@om nom nom Ah,当然!没有意识到它来自MongoDBObject API。(哦,顺便说一句,你可能想斩首一个B?DBOB)
val b = a.as[DBObject]("a")