私は最近、私のMongoDBでそのフィールドの追跡を開始したいので、私のスカラーケースクラスに新しいフィールドを追加します。ReactiveMongo新しいフィールドが追加された後にMacros.handlerがクラッシュする
のはケースクラスは、このようなものです言わせて:
case class MyItem (
var existingField: String,
var newlyAddedField: String
) {
}
私は私のオブジェクトにJSONとBSONをデシリアライズ/シリアライズするためにこれを使用します。
object MyItem {
import play.api.libs.json.Json
// generate reader and writer:
implicit var jsonFormats = Json.format[MyItem]
implicit var bsonFormats = Macros.handler[MyItem]
}
私のDB内のすべての既存のデータが」doesnのとおりトンnewlyAddedField
を持って、私は
reactivemongo.bson.exceptions.DocumentKeyNotFound: The key 'newlyAddedField' could not be found in this document or array
ランタイム例外を取得誰もが助けてもらえますか?私は独自のシリアライゼーション/デシリアライズを書いたことがありますが、私はPlay Frameworkを使用しているので、どのように行うべきかわかりません。その構文と方法はバージョンによって異なります。私はフィールドを追加することがNoSQL dbで一般的でなければならないので、より簡単な方法があることを願っています。 Btw、私はプレイフレームワーク2.5を使用しています
ありがとうございます!
「新しく追加されたフィールド」がない場合は、ReactiveMongoに固有ではなく、 'null'ではなく' Option'として表現されなければなりません。 – cchantep