【问题标题】:Casbah Scala MongoDB driver - embedded objectsCasbah Scala MongoDB 驱动程序 - 嵌入式对象
【发布时间】:2012-04-30 14:06:50
【问题描述】:

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

【问题讨论】:

    标签: scala mongodb casbah


    【解决方案1】:

    它非常直观。

    建设:

    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")
    

    【讨论】:

    • 注意:为此,请记住导入 com.mongodb.casbah.commons.MongoDBObject, com.mongodb.casbah.commons.BaseImports._, com.mongodb.casbah.Implicits._,和 com.mongodb.DBObject.
    • 我想你可以import com.mongodb.casbah.commons.Imports._。这将导入 DBObject、MongoDBObject 和隐式转换函数。我在 casbah 文档的某个地方读到过。
    • 如何让.as[] 工作?我需要.asInstanceOf[]。是一样的吗?
    • @akauppi 这是为 MongoDBObject 定义的方法。 As you can see from the doc,它的工作方式类似于 apply() + asInstanceOf[]
    • @om-nom-nom 啊,当然!没有意识到它来自 MongoDBObject API。 (哦,顺便说一句,你可能想对一个 B 进行资本化?DBOB)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多