問題タブ [play-reactivemongo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
261 参照

scala - ReactiveMongo Play 2.3 アプリを 2.6 から 3.0 にアップグレードする

MongoLab 2.6 データベースに対して Heroku で実行されている ReactiveMongo を使用して、Scala Play 2.3 アプリが完全に正常に動作していましたが、MongoLab がサンドボックス データベースを 3.0 に更新したため、アプリを起動できません。

ローカル データベースを 3.0 に更新しました。

http://reactivemongo.org/releases/0.11/documentation/tutorial/play2.htmlの 2.3の指示に従いましたが、次のようなスタック トレースが得られます。

--- (SBT からアプリケーションを実行し、自動リロードが有効になっています) ---

[info] play - /0:0:0:0:0:0:0:0:9000 で HTTP をリッスンしています

(サーバーが起動しました。Ctrl+D を使用して停止し、コンソールに戻ります...)

[情報] アプリケーション - ReactiveMongoPlugin を開始しています... [情報] アプリケーション - ReactiveMongoPlugin が db 'sites' で正常に開始されました! サーバー: [localhost:27017] [info] play - アプリケーションが開始されました (Dev) [ERROR] [10/02/2015 11:34:11.472] [play-akka.actor.default-dispatcher-7] [ActorSystem(play) ] 'akka.jvm-exit-on-fatal-error' が有効になっているため、スレッド [play-akka.actor.default-dispatcher-7] が JVM をシャットダウンしているときにキャッチされないエラーが発生しました akka.actor.ActorCell.receiveMessage で java.lang.AbstractMethodError (ActorCell.scala:516) akka.actor.ActorCell.invoke(ActorCell.scala:487) で akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) で akka.dispatch.Mailbox.run(Mailbox.scala: 220) akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.

[エラー] [10/02/2015 11:34:11.473] [play-akka.actor.default-dispatcher-8] [ActorSystem(play)] スレッドからのキャッチされないエラー [play-akka.actor.default-dispatcher-8 ] 'akka.jvm-exit-on-fatal-error' が有効になっているため、JVM をシャットダウンしていますActorSystem[play] java.lang.AbstractMethodError at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) at akka.actor.ActorCell.invoke(ActorCell.scala:487) に対して -exit-on-fatal-error' が有効) akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) で akka.dispatch.Mailbox.run(Mailbox.scala:220) で akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) で scala .concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) で akka.actor.ActorCell.create(ActorCell.scala:580) で scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) で scala .concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) で scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) で akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456) で akka .actor.ActorCell.systemInvoke(ActorCell.scala:478)concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456) at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456) at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)

参照を ...default.BSONCollection から ...bson.BSONCollection などに更新しました。

私は次の設定を使用しています:

私のアプリの依存関係は次のとおりです。

上記のスタックトレースが実際に何を意味するのか理解できないので、誰かがアドバイスできますか?

0 投票する
0 に答える
425 参照

mongodb - play Reactive mongo を使用して mongo ISODate をクエリする

mongodb で日付を照会しようとしています。

日付は として保存されISODate("2015-10-08T05:48:55.778+0000")ます。

orのようなクエリを実行するにはどうすればよいです$gte$lte

リアクティブ mongo用の Play プラグインを使用しています

mongo シェルからクエリするには、=> でクエリする必要があります

{"endDateTime":{"$eq": new Date("2017-10-08T05:48:55.778+0000")}

また、

{"endDateTime":{"$eq": ISODate("2017-10-08T05:48:55.778+0000")}

では、play react mongo を使用してクエリを実行するにはどうすればよいでしょうか。JodaTime を使用しています。クエリの Json オブジェクトを生成し、すぐにfind()API に供給しています。

*はい、SO にはトピックに関する多くの提案がありますが、この場合はどれも役に立たないようです。必要に応じて、さらに情報を提供できます。

更新の回答:

日付を変換するときに、混乱があったようです。

String Date を に変換しようとするJoda DateTimeと、コンソールに出力すると のように表示されますtimestampが、リアクティブ mongo に送信findすると、何らかの形式の文字列 date に変換されます"2015-10-08T05:48:55.778+0000"

そのため、ミリ秒単位の変換を取得してそれぞれの API に送信する必要があり、mongo は問題なく処理されました。

0 投票する
1 に答える
1361 参照

scala - タイプ model.User の JsObject としての Json シリアライザが見つかりません。この型の暗黙的な OWrites または OFormat を実装してみてください

Play フレームワークと Scala および Reactive Mongo を使用して、オブジェクトを mongodb データベースに保存しています。このhttp://reactivemongo.org/releases/0.10/documentation/bson/usage.htmlに従って、次のコードを思いつきました。

BsonDocument に変換する暗黙のライターを作成したので、適切に変換されてデータベースに保存されることを期待していました。

ただし、コンパイルすると、次のようになります。

No Json serializer as JsObject found for type play.api.libs.json.JsObject で述べたように、必要なパッケージをインポートしています。また、以下を含む json.JsonFormatters._ もインポートしています。

それでも、JsObject から User に変換できないという同じエラーが返されます。User エンティティが 5 つのフィールドを持つ単なるケース クラスであることを考えると、JsObject がどこにあるのかわかりません。

何か案は?私は何が欠けていますか?

0 投票する
2 に答える
1144 参照

scala - 指定された @inject クラスから val をインスタンス化します

このクラスからオブジェクトをインスタンス化するにはどうすればよいですか? MongoUtils以下に定義されているクラスを使用したい別のクラスがあります。このクラスはreactmongoからのものです

これまで試してみval mongoutil = new MongoUtils(reactiveMongoApi = play.modules.reactivemongo) ましたが、どうやらうまくいかないようです。