6

Play-ReactiveMongo プラグインを使用して、Play と Angular を使用して MongoDB の単純なレコードを読み書きしようとしています。プラグインは、BSON と JSON の間で明示的に変換する代わりに、単純なケース クラスと通常の JSON を使用できるため、優れたオプションのようです。しかし、プラグインを使用するいくつかの例は、同じフレームワーク内で MongoDB オブジェクト ID を JSON との間でマッピングする方法をカバーしていないようです。これはすべて、暗黙の(=私にとっては魔法の)読み取り/書き込みの負荷でバックグラウンドで機能するようですが、オブジェクトIDを処理していないようです。

私のコードは Alex Lashford のModern Web Templateに基づいており、 JSON Read/Writes を使用した Stephan Godbillion の例に非常に似ていますが、Alex も Stephan も MongoDB オブジェクト ID とは何の関係もありません。

データ レコードにはある種の一意の ID が必要なので、それらをフェッチして更新することができます。MongoDB が提供するものを使用するのは理にかなっていますが、Play ReactiveMongo 内でこれをきれいに使用する方法を見つけることができないようですプラグイン。

JSON コレクションで Play ReactiveMongo プラグインを使用する方法と、すべての処理を BSON を使用するように変換することなく JSON との間でオブジェクト ID をマッピングする方法を示す例を知っている人はいますか?

4

2 に答える 2

1

case別のクラスを作成して、この問題を解決しました。

case class Id($oid: String)

次に、次のように使用します。

case class User(_id: Id, ...)

Jsonコンバーターをインポートする必要があります

implicit val idFormat = Json.format[Id]
implicit val userFormat = Json.format[User]
于 2015-06-30T09:17:19.497 に答える