Scala MongoDB,覆盖编解码器以写入/读取数组[字节]



我正在使用 http://mongodb.github.io/mongo-scala-driver/

我正在为一个 CC 定义编解码器。

 lazy val userInfoCodec: Codec[UserInfo] = new Codec[UserInfo] {
    override def encode(writer: BsonWriter, value: UserInfo, encoderContext: EncoderContext): Unit = ???
    override def decode(reader: BsonReader, decoderContext: DecoderContext): UserInfo = ???
}

在里面我正在做加密,所以字段而不是字符串是数组[字节]。你知道如何使用BsonWriter在那里写字节数组吗?我看到了一些像writeStartArray这样的东西,但我不知道如何使用它。

感谢您的帮助!

case class UserInfo(ab: Array[Byte])
val userInfoCodec: Codec[UserInfo] = new Codec[UserInfo] {
  override def getEncoderClass: Class[UserInfo] = classOf[UserInfo]
  override def encode(writer: BsonWriter, value: UserInfo, encoderContext: EncoderContext): Unit = {
    val bsonBinary = new BsonBinary(value.ab)
    writer.writeBinaryData(bsonBinary)
  }

  override def decode(reader: BsonReader, decoderContext: DecoderContext): UserInfo = {
    val bsonBinary = reader.readBinaryData()
    UserInfo(bsonBinary.getData)
  }
}

最新更新