spring-boot - 我想获取MongoTemplate的findAndModify返回值作为修改后的值

标签 spring-boot mongotemplate findandmodify

我目前在 Spring boot 中使用 mongoTemplate 是这样的:

public MyEntity update(MyDto dto) {
    ...
    MyEntity result = mongoTemplate.findAndModify(
        query, update, MyEntity.class);

    return result;
}

query 放入找到要修改的MyEntityCriteriaupdate 将内容放入改变。但是,返回值是更新前的数据。如何立即获取修改后的值?

最佳答案

在 mongoTemplate 上使用 findAndModify 时,如果要返回更新的记录而不是原始记录,则必须明确配置它。

这可以通过以下方式完成:

FindAndModifyOptions findAndModifyOptions = FindAndModifyOptions.options().returnNew(true);
MyEntity result = mongoTemplate.findAndModify(query, update, findAndModifyOptions, MyEntity.class);

return result;

https://docs.mongodb.com/manual/reference/method/db.collection.findAndModify/

关于spring-boot - 我想获取MongoTemplate的findAndModify返回值作为修改后的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69928209/

相关文章:

java - Spring boot Resttemplate动态代理设置通过ssh隧道连接无法识别远程DNS

java - 如何使用 MongoTemplate 将 Mongo Shell 脚本转换为 Java?

intellij-idea - Intellij - 如何在选定文本中查找+替换?

node.js - findAndModify 在 node.js/MongoDb 中的用法

mongodb - 使用 grails gorm 在 mongodb 中使用 findAndModify

java - 通过注释类创建带有限定符的@MockBean?

Websockets 返回状态 500 错误的 Java Spring Boot 项目

Angular/Spring Boot/Azure Ingress - URL 重写

java - 如何从 Java Spring Boot 执行复杂的 MongoDB native 查询

java - 如何在java中使用mongodb实现批量updateOne