我有一个这样的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.
}
}