問題タブ [spring-mongo]
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.
java - Spring/Rest/MongoDB の埋め込みクラス
Organization クラス内に埋め込まれた Address クラスがあります。組織に住所を投稿したときに、住所クラスの ID フィールドに値が入力されていません。
私は知っています... MongoDB サブドキュメントでは ID は必要ありません。それらを切り離したり、特定のアドレスを削除したりする場合に備えて、1 つ持っておきたいと思います。Address の id フィールドを作成しましたが、入力されない理由がわかりません。
'
これを行うには何か特別なことをする必要がありますか? アドレス クラスを初期化するときに、その ID ジェネレーターを自分で呼び出すことはできますか?
ティア!
mongodb - spring mongo を使用したカスタム集計
次のような 2 つのコレクションのドキュメントを結合する集計クエリを実行しようとしています。
これは、mongo シェルから実行すると正常に動作しますが、Spring mongo から実行すると問題が発生します。
「BasicDBObject」を使用してカスタム クエリを作成する方法は知っていますが、「db.clients.distinct(」でそれを行う方法がわかりません。
何か案は ?
arrays - プロパティが複数の配列要素に対して同じ値を持つオブジェクトのMongoDB配列を検索します
オブジェクトの配列である Categories フィールドを持つ Mongo Collection of Products があります。
製品には複数のカテゴリがある可能性があるため、プライマリ カテゴリの関係 (1 対 1) を強制したいと考えました。ただし、データ移行では、ドキュメント内の複数のカテゴリに対して isPrimary プロパティが true になっているドキュメントがあります。カテゴリ配列の複数の配列要素で isPrimary が true である製品を見つける必要があります。これは私がこれまでに持っているものです:
しかし、これは、配列要素の 1 つに isPrimary が存在しないという結果しか得られません。複数の配列要素で同じ値を持つ isPrimary を照会する方法がわかりません。また、これも Spring クエリになります。
mongodb - すべてのドキュメントの _class プロパティを更新する
Spring で mongo を使用しており、さまざまなコレクションの多くのドキュメントに _class プロパティがあります。ある時点でパッケージ名を変更したため、_class プロパティに古いパッケージ名を持つ古いドキュメントでエラーが発生しました。すべてのコレクションとドキュメントの _class プロパティでパッケージ名を更新する最良の方法は何でしょうか?
特定のコレクションの変更を行うスクリプトを作成することができました (一部のドキュメントにはネストされたサブドキュメントがあるため、再帰も必要です)。しかし、すべてのコレクションで機能するソリューションが必要です。
ドキュメントを文字列に変換してパッケージ名を置き換えてjsonに戻そうとしましたが、それが原因でした
に変換する
この種の更新タスクを達成する簡単な方法はありますか?
mongodb - Mongodb での大きな検索クエリ中に追加された不明なドキュメントをキャプチャする
私はすべてを a にロードするのが不思議Spring Mongo API
でした。検索結果に数十億件のレコードが含まれている場合、メモリに影響はありませんか? これをすべてメモリにロードせずに、これを達成するためのより良い方法を誰かが提案できますか。limit を使用すると役立つ場合がありますが、新しいドキュメントがコレクションに挿入されているかどうかがわからないという欠点があります。レコードを読み取った後にコレクションが変更された場合、制限による検索は同じ効果があります。find
List
X of billion
2つの質問:
- すべてをメモリにロードしないことでパフォーマンスを向上させる
- 処理中に追加されたこの未知のドキュメントをどのように解決しますか?
API からのコード
java - Mongo で反転リストを作成するより高速な方法
MongoDB コレクションに逆リストを作成したいと考えています。コレクションは次のようになります。
word
は辞書の ID であり、次の場所docToPos
にマップdocument
されposition
ます。たとえば、単語 2 は文書 1 の位置 1 にあり、単語 9 は文書 2 の位置 2、43、および 1246 にあります。
データベースに追加したいすべての新しいドキュメントは、単語 ID を持つ単純な配列です。
したがって、spring-mongo を使用すると、次の Java コードがあります。
(upsertメソッドは私が実装しています)
このソリューションは機能しますが、ドキュメントに 100,000 語が含まれている場合、mongo に 100,000 クエリが必要です。
最後に、私の質問は次のとおりです。これをより速く行う方法はありますか? 例: 配列全体を一度にクエリし、これを db で実行しますか? eval
に関数があることは知っていますがmongo
、にはありませんmongo-spring
java - データベースの切り替え Spring MongoDb
Spring mongodata (バージョン: 1.6.2) を使用して mongo データベースを切り替える必要がある場合があります。現在、mongo テンプレートを使用して db-config.xml でデフォルトのデータベースを構成し、リポジトリに注釈を付けています。実行時に 1 つの db/template から別の db/template に切り替える必要があります。必要なアクションを実行し、デフォルトのものに戻します。いくつかのリンク、 Spring-data-mongodb connect to multiple databases in one Mongo instance および Making spring-data-mongodb multi-tenant を参照 しました。実行時に同じリポジトリ セットを使用する必要があります。構成レベルで私のケースを処理することは可能ですか? それとも、これを実現するために Dbfactory を拡張する必要がありますか? Dbfactory では、同じアノテーション付きリポジトリのセットを使用できますか?
どんな助けにも感謝します。