如何使用 Spring Boot 更新 MongoDB 集合中的子对象?

How to update a sub-object in a MongoDB collection with Spring Boot?

我是 Spring Data 和 Whosebug 的新手。

为简单起见,在我的数据库中我有一个 'user' 集合,其中我有一个用户文档,其中包含一个 'myApp' 子对象和一个 'param' 子对象。

目前我可以在我的用户文档中更新插入 'param' 除了我想做的是更新到 'myApp' 中的 'param'。

请问有什么好的做法?

这是我当前的请求:

public ResponseEntity<?> setParam(String key, Param param){
        Query q = new Query(Criteria.where("_id").is(Auth.getUserId(key)));
        q.fields().include("myApp");
        Update u = Update.update("param", param).set("param", param);
        mongoTemplate.findAndModify(q, u, new FindAndModifyOptions().returnNew(true).upsert(false), User.class);
        return null;
}

提前致谢!

好的,我尝试了很多东西,终于找到了解决方案!

在 .update 中执行“myApp.param”和在 .set 中执行“myApp.param”就足够了!

希望对其他人有用。