1

我目前在 Spring Boot 中使用 mongoTemplate,如下所示:

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

    return result;
}

query放入Criteria找到MyEntity要修改的,并update放入要更改的内容。但是,返回值是更新前的数据。如何立即获得修改后的值?

4

1 回答 1

2

在 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/

于 2021-11-11T12:41:13.617 回答