問題タブ [spring-data-mongodb]
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.
mongodb - Spring データ MongoDb: MappingMongoConverter remove _class
デフォルトのMappingMongoConverterは、データベース内の各オブジェクトにカスタム タイプ キー (「_class」) を追加します。したがって、Person を作成すると、次のようになります。
そしてそれをdbに保存します:
mongo の結果のオブジェクトは次のようになります。
質問:
Person クラスを別の名前空間に移動すると、どのような影響がありますか?
「_class」キーでオブジェクトを汚染しないことは可能ですか? Person クラス専用の独自のコンバーターを作成せずに?
java - Spring Data MongoDB リポジトリで日付を照会するにはどうすればよいですか?
私のドメイン オブジェクト -
そして私はPersonRepositoryを持っています
特定の日付以降に生まれたすべての人を取得しようとしています。しかし、それはうまくいきません。私は何が欠けていますか?mongodb コンソールの「born」の日付形式は次のようになります
data-jpa ソースで、これの単体/統合テストを探してみました。見つかりませんでした。誰かが私にそれを指摘できますか?
mongodb - Spring Data Mongodb を使用して、コレクション全体をプルして反復せずにフィールドの最大値を取得することは可能ですか?
を使用して、 ormongoTemplate.find()
を呼び出すことができるクエリを指定します。.limit()
.sort()
.limit()
オブジェクトを返しますQuery
オブジェクトを
.sort()
返しSort
ます
これを考えると、Query().limit(int).sort() と言えますが、これは目的の操作を実行せず、限られた結果セットを並べ替えるだけです。
.sort() が Sort() を返すため、Query().sort().limit(int) を呼び出すことはできません。
では、Spring Data を使用して、mongoDB シェルに示されているように次のことを実行するにはどうすればよいですか? まだ見つけていない生のクエリを渡す方法があるのではないでしょうか?
必要に応じて Paging インターフェイスを拡張しても問題ありません...まったく役に立たないようです。ありがとう!
spring-data-mongodb - 春のmongoからdropDatabase
統合テストの前に、mongo にデータベースをドロップしたいと思います。春のmongoでこれを行うことは可能ですか?
今のところ利用できない場合は、com.mongodb.DB オブジェクトを春の mongo から何らかの方法でフェッチすることは可能ですか?
java - SpringのMongoTemplateクラスとQueryクラスを使用してフィールドのサブセットを取得するにはどうすればよいですか?
MongoTemplate
次のコンソールコマンドを実行して、フィールドのサブセットのみが入力されているが、Springのクラスを使用しているすべての行を返すことができるようにしたいと思います。
コンソールコマンド
MongoTemplate
射影(サブセット)クエリに関する情報は、MongoDBのマニュアルに記載されています。
java - spring-data-mongo - オプションのクエリ パラメータ?
JSON ベースのクエリ メソッドで spring-data mongo を使用していますが、検索クエリでオプションのパラメーターを許可する方法がわかりません。
たとえば、次の機能があるとします
-しかし、メソッドにNULL値が渡された場合、名前の正規表現の一致を適用したり、日付範囲の制限を適用したりしたくありませんでした。
現時点では、mongoTemplate を使用してクエリを作成する必要があるようです。
代替手段はありますか - または mongoTemplate を使用するのが最良の選択肢ですか?
ありがとう
java - Spring-data-mongodbは1つのMongoインスタンスで複数のデータベースに接続します
最新のspring-data-mongodb(1.1.0.M2)と最新のMongoドライバー(2.9.0-RC1)を使用しています。アプリケーションに接続している複数のクライアントがあり、同じMongoサーバーでそれぞれに独自の「スキーマ/データベース」を提供したいという状況があります。ドライバーを直接使用している場合、これを達成するのはそれほど難しい作業ではありません。
ほら、簡単。ただし、spring-data-mongodbでは、複数のデータベースを簡単に使用することはできません。への接続を設定するための推奨される方法は、 AbstractMongoConfigurationクラスMongo
を拡張することです。
次のメソッドをオーバーライドしていることがわかります。
したがって、1つのデータベース名を使用する必要があります。次に構築するリポジトリインターフェイスは、SimpleMongoRepository
クラスに渡されるMongoTemplate内のデータベース名を使用します。
いったいどこに複数のデータベース名を付けるのでしょうか?複数のデータベース名、複数MongoTempate
のs(データベース名ごとに1つ)、および他の複数の構成クラスを作成する必要があります。それでも、リポジトリインターフェイスで正しいテンプレートを使用することはできません。誰かがそのようなことを試みたなら、私に知らせてください。私がそれを理解したら、私はここに答えを投稿します。
ありがとう。
java - Spring Data MongoDB リポジトリのクエリ連結はどのように機能しますか?
findByName(…)
すべてが正常に動作するように、Spring Data リポジトリのメソッドを作成すると。ただし、findByField1AndName(…)
Spring Data MongoDB を使用すると、最後のパラメーターに対してのみクエリが生成されます。
しかし、私はそれが生成されると予想しました
どうしたの?助けてください。
UPD1:誰かがこのような問題を抱えている場合は、@Query アノテーションを使用して手動でクエリを作成できます。以下の例をご覧ください。
spring - MongoDB ライフサイクル イベントの MongoTemplate へのアクセス
Spring Data Mongodb を使用して、mongodb ドキュメントのバージョン管理システムを実装しようとしています。Mongo のライフサイクル イベントを活用しようと思った
私がやりたかったのはonBeforeSave
、元のバージョンのドキュメントを聞いて取得し、2 つの間の差分を取得することでした。
私が抱えている問題は、mongoOperations への参照を取得できないことです。循環参照を作成し続けます。私が@Autowireかどうか:
オートワイヤー注入
モンゴの設定:
リスナー:
セッター注入
モンゴの設定:
リスナー:
ライフサイクル イベントでドキュメントのバージョン管理を処理することは、私にとって理にかなっています。PHP/Doctrine/Mongoで同様のことをしました
Doctrine の場合、ライフサイクル コールバックで Document Manager への参照を取得します。Spring Dataでこれと同じことを行う方法の手がかりはありますか?
java - Spring Data MongoDB Cross-Store プラグインと JPA PrePersist および PreUpdate
次の設定のアプリケーションがあります。
Java 6.0 Spring Data JPA 1.1.0.RELEASE Spring Data MongoDB 1.0.2.RELEASE Spring Data MongoDB Cross-Store 1.0.2.RELEASE Hibernate JPA 2.0
このアプリケーションには、JPA PrePersist、PreUpdate、PostPersist、および PostUpdate アノテーションを使用するいくつかのクラスがあります。以下に例を示します。
クロスストア プラグインの AspectJ ウィービングを有効にするとすぐに、Spring アプリケーション コンテキストがエラーでロードに失敗します。
エラーの根本的な原因は、Aspect MongoDocumentBacking が追加の PrePersist メソッドと PreUpdate メソッドをエンティティ クラスに織り込んでいることであることがわかりました。クラスにはこれらのアノテーションを持つメソッドがすでにあるため、Hibernate Entity Manager はこれらのクラスの検証に失敗します。
JPA アノテーションを使用する既存のコードを持つアプリケーションでクロスストア プラグインを使用する方法に関するガイダンスはありますか?