我正在使用org.springframework.data.mongodb.repository.MongoRepository。我已经写了一些自定义方法,如下所示,
public interface DocRepository extends MongoRepository<Doc, String> {
Doc findByDocIdAndAssignmentId(final String docId, final String assignemtId);
}
如何编写自定义方法,在满足条件时更新所有条目。
例如,将文档倾斜字段设置为&#34; abc&#34;如果作业ID是&#34; xyz&#34;?
答案 0 :(得分:0)
如果您的autowired
课程中有mongoTemplate
个属性service
。添加以下代码以更新文档。
Query query = new Query();
query.addCriteria(Criteria.where("assignmentId").is("xyz"))
Update update = new Update();
update.set("title", "abc");
mongoTemplate.updateFirst(query, update, Doc.class);
您无需findByDocIdAndAssignmentId
进行更新。
答案 1 :(得分:0)
1)您需要创建一个接口,例如CustomDocRepository并将此接口添加为DocRepository的Base:
public interface DocRepository extends MongoRepository<Doc, String>, CustomDocRepository {
void updateDocumentTitle(String id, String title);
}
2)您需要为CustomDocRepository添加实现:
@Repository
public class CustomDocRepositoryImpl implements CustomDocRepository {
@Autowired
private MongoTemplate mongoTemplate;
@Override
public void updateDocumentTitle(String id, String title) {
Query query = new Query().addCriteria(where("_id").is(id));
Update update = new Update();
update.set("title", title);
mongoTemplate.update(Doc.class).matching(query).apply(update).first();
}
}
这就是您要做的
答案 2 :(得分:-2)
我找到了com.mongodb.MongoClient来实现上述