問題タブ [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 に答える
600 参照

mongodb - 遊ぶ!Reactivemongo プラグインを追加した後、フレームワーク コントローラが EMPTY RESPONSE を返す

私は、reactivemongo と Play フレームワークにまったく慣れていません。MongoDB 接続を追加する時が来たとき、私は Play アプリケーションに取り組んでいました。私はreactiveMongoを使うことに決め、ここのチュートリアルに従ってすべてを作りました: https://github.com/sgodbillon/reactivemongo-demo-app

私が経験している問題は、プラグインを追加して構成した後、アプリケーションから空の応答 (ERR_EMPTY_RESPONSE) を受け取り始めたことです。プラグインを削除して初期化するとすぐに、HTML テキストを含む適切な Web アプリの応答を再び受信し始めます。

ビルドファイルは次のとおりです。

プラグイン構成ファイルは典型的なもので、1行だけです:

開始時とページを開くときのコンソール出力は次のとおりです。

そのような行動の原因は何ですか?

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

scala - reactmongo を使用して Play フレームワーク内で gridfs ファイルをオーバーライドする方法は?

gridfs ファイルを作成する次のコードがあります。

コードは正常に動作しますが、同じ名前の 2 つのファイルを書き込むと、コレクション内のファイルが複製されます。ファイル名フィールドを使用して一意のインデックスを作成することを考えましたが、それでは最初のファイルが保持され、最新バージョンを保持する必要があります。どうすればいいですか?

ありがとう、

GA

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

mongodb - Mongo/RectiveMongoのリストから参照される値を保存/取得する最良の方法は?

コメントのリストという非常に一般的な使用例があります。各コメントには作成者がいます。

著者は複数のコメントを作成できるため、参照を使用してコメントから著者への参照を保存しています。

現在、ReactiveMongo を使用しており、データベースへのアクセスを非同期に維持したいと考えていますが、この場合、方法がわかりません。コメントを取得するためにデータベースへの非同期アクセスを行いますが、コメントごとに作成者を取得する必要があります。これまでのところ、コメントをループしてユーザーを同期的に取得する方法しかありません。

それ以外に、次のことができます。

  • 各ユーザーを非同期に取得しますが、応答を返すためにすべてのユーザーがフェッチされるまで待機する機能を導入する必要があり、コードが混乱する可能性があります。

  • 完全なユーザー オブジェクトを保存します。少なくとも、各コメントのコメント (画像、名前など) に必要なものです。ユーザーが何か (コメントに保存されているデータに関連するもの) を変更するたびに、データベース内のすべてのコメントを調べて変更する必要があるため、この冗長性は管理が面倒になる可能性があります。

ここで適用する正しいパターンは何ですか?

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

mongodb - JsObject を使用して Reactivemongo でカウントする

クエリに Count を実装しようとしていますが、BSONDocument ではなく JsObject オブジェクトを使用しているため、問題が発生しています。

https://github.com/ReactiveMongo/ReactiveMongo/blob/master/driver/samples/SimpleUseCasesSample.scala

JsObject を BSONDocument に変換する必要がありますか、それとももっと良い方法がありますか? ReactiveMongo 0.9 でこれをどのように行いますか?

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

mongodb - Akka と ReactiveMongo

アクター間で同じ接続プールをクラスター ワーカーと共有するための最良の方法を見つけようとしています。私は次の構造を持っています:

マスター アクター -> ワーカー アクター (最大 100 個以上) -> MongoDB

ワーカーと MongoDB の間には、reactivemongo を配置したいと考えていますが、すべてのアクター間で接続プールを共有する方法が正確にはわかりません。

リアクティブモンゴのドキュメントによると:

MongoDriver インスタンスはアクター システムを管理します。接続は、接続のプールを管理します。一般に、MongoDriver または MongoConnection の作成は、一度しかインスタンス化されません。1 つ以上のサーバーのリストを提供できます。ドライバーは、それがスタンドアロン サーバーであるか、レプリカ セット構成であるかを推測します。レプリカ ノードが 1 つの場合でも、ドライバーは他のノードをプローブして自動的に追加します。

マスターアクターで作成してから、各メッセージにバンドルする必要がありますか? したがって、これはマスター アクターでは次のようになります。

そして、メッセージでアクターに接続を渡します。または、各ワーク アクターで接続をクエリし、ドライバーだけをメッセージに渡す必要がありますか?

どんな助けでも大歓迎です。ありがとう。

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

mongodb - specs2プレイを使って!Reactivemongo を使用した偽のアプリケーションがタイムアウトを引き起こす

現在、scala で specs2 を mongodb/reactivemongo + Play! と一緒に使用する問題に取り組んでいます。

mongodb に書き込むテストを実行すると、最初の操作は正常に実行されますが、mongodb へのタイムアウトが原因で、後続のすべてのテスト/書き込みが失敗します。

ここのリアクティブ mongo サイトで、既に文書化されているバグと思われるものを見つけました: https://github.com/ReactiveMongo/Play-ReactiveMongo/issues/32

この問題の回避策を知っている人はいますか?

すでに試しました:

  • テストを強制的に順番に実行する
  • 独自の偽のアプリケーションで実行される各テスト
  • すべてのテストを同じ偽のアプリケーションで実行する
  • コレクションを def として定義する (上記の問題 32 で提案されているように)

どんな助けでも大歓迎です!

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

mongodb - Play2 & ReactiveMongo テストの問題: テストが失敗した直後の db 接続

ファイルを取得し、特別なメタデータを使用して gridFS に保存するファイル ストレージ サービスを実装しています。もちろん、すべてが統合されていることを確認したいのですが、ファイルは実際にはデータベースに保存され、データベースから取得されます。

Play Framework 2.1.3 Scala と ReactiveMongo 0.9 を使用しています。

私のテストケースは次のようになります。

runningすべてのケースを、またはすべてのケース、さらには でラップしようとしましたThread.sleep。ただし、テストが失敗した、データベースは常に稼働しています。

私は何を間違っていますか?ReactiveMongo アプリケーションをどのようにテストしますか?

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

json - reactmongo - 2 つの BSONDocuments をマージする

2 つの BSON ドキュメントをマージする最も効率的で簡単な方法を探しています。衝突の場合、私はすでにハンドラを持っています.

ただし、BSONDocument の不変の性質により、それを使用して何かを行うことはほとんど不可能です。マージを行う最も簡単で最速の方法は何ですか?

たとえば、次のものをマージする必要があります。

最終的なドキュメントは次のようになります。

BSONDocument.add にはメソッドがありますが、一意性はチェックされません。これは、ルート キーとして「2013」を含む 2 つの BSON ドキュメントが最後にあることを意味します。

ありがとうございました!