1

我想扩展 BsonRecord 类以在填写时处理它的一些字段。我试图通过扩展 setFieldsFrom... 方法来做到这一点,但它似乎不起作用...

这是我的代码:

trait NodeBsonRecord[MyType <: BsonRecord[MyType]] extends BsonRecord[MyType]
{
    self: MyType =>

    override def setFieldsFromDBObject(dbo:DBObject) =
    {
      super.setFieldsFromDBObject(dbo)
      println("setFieldsFromDBObject")
    }
    override def setFieldsFromJSON(json:String) =
    {
      val out = super.setFieldsFromJSON(json)
      println("setFieldsFromJSON")
      out
    }
    override def setFieldsFromJsonString(json:String) =
    {
      val out = super.setFieldsFromJsonString(json)
      println("setFieldsFromJsonString")
      out
    }
    override def setFieldsFromJValue(jval:JValue) =
    {
      val out = super.setFieldsFromJValue(jval)
      println("setFieldsFromJValue")
      out
    }
    override def setFieldsFromReq(req:Req) =
    {
      val out = super.setFieldsFromReq(req)
      println("setFieldsFromReq")
      out
    }
}

因此,当我请求记录时(使用 MongoRecord.find()),我希望看到一个“setFieldFrom...”的东西,但什么都没有打印出来...

任何人都可以告诉我该怎么做?

4

1 回答 1

0

Mongo 似乎在 BsonMetaRecord 中使用setFieldsFromDBObject作为 find 的一部分,它遍历每个字段并调用 setFromAny。

于 2012-05-04T20:46:41.960 回答