次のような MongoDB 構造があります。
record = { 'field': 'value',
'field2': 'value2',
'events' : [ { 'event1': 1 }, { 'event2' : 2 }]
}
Spring Data MongoDB パッケージを使用してこのデータにアクセスしています。主にデータへの書き込みがあるため、ネイティブの「$push」機能を使用して「イベント」を「レコード」に追加したいのですが、フェッチせずに MongoRepository でそれを行う方法がわかりません。レコード全体をプッシュしてから保存しますか?
MongoRepository を使用する場合、実際に具体的な実装を行うことはありません。Spring は、アノテーションまたはメソッド自体の名前に基づいてすべてを処理します
アップデート
リポジトリにカスタム メソッドを実装し、MongoTemplate を使用して手動で行うのが正しい方法でしょうか?
例:
FooRepository.java
public interface FooRepository extends
CrudRepository<Foo, ObjectId>,
AppointmentWarehouseRepositoryCustom {
}
FooRepositoryCustom.java
public interface AppointmentWarehouseRepositoryCustom {
public void pushMethod();
}
FooRepositoryImpl.java
public class FooRepositoryImpl implements
AppointmentWarehouseRepositoryCustom {
@Autowired
protected MongoTemplate mongoTemplate;
public void pushMethod() {
// Push methods here.
}
}