Java MongoTemplate中的save()与findAndModify()

Java MongoTemplate中的save()与findAndModify(),java,spring,mongodb,spring-data,spring-data-mongodb,Java,Spring,Mongodb,Spring Data,Spring Data Mongodb,我正在使用此代码更新mongo数据库中的条目: final Optional<Payment> payment = cardRepository.findFirstByUserAndActiveIsTrue(user); final Result<?> updated = payment.map(x -> { X.setPaymentName(paymentMethodObj.getName()); return paymentRepository.

我正在使用此代码更新mongo数据库中的条目:

final Optional<Payment> payment = cardRepository.findFirstByUserAndActiveIsTrue(user);
final Result<?> updated = payment.map(x -> {
    X.setPaymentName(paymentMethodObj.getName());
    return paymentRepository.save(x);
}).map(ResultBuidler::successful);
final Optional payment=cardRepository.findFirstByUserAndActiveIsTrue(用户);
最终结果更新=payment.map(x->{
X.setPaymentName(paymentMethodObj.getName());
返回paymentRepository.save(x);
}).map(结果向导::成功);
但是有人告诉我使用
MongoTemplate
中的
findAndModify()
。我真的看不出这样做有什么好处。如果有任何评论或意见能帮助我理解为什么一种方法比另一种更好,我将不胜感激

多谢各位