程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring Data Mongo:更新了各个领域的upsert大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring Data Mongo:更新了各个领域的upsert?

开发过程中遇到Spring Data Mongo:更新了各个领域的upsert的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring Data Mongo:更新了各个领域的upsert的解决方法建议,希望对你解决Spring Data Mongo:更新了各个领域的upsert有所启发或帮助;

我相信你正在寻找的是@H_944_3@$setonInsert对@H_944_3@subdocument1。所以类似的东西应该为您工作。

@H_944_3@query query = query.query(Criteria.where("_ID").is("some_ID"));
update update = update.update("_ID", "some_ID")
                .set("fIEld1", "value1")
                .set("fIEld2", "value2")
                .set("subdocument2", subdocumentObject2)
                .setonInsert("subdocument1", subdocumentObject1);

此处更多https://docs.mongodb.com/manual/reference/operator/update/setOnInsert/

解决方法

我正在寻找使用Spring Data提供的API对Mongo集合实施 upsert 操作的正确方法。

详细地,我有以下用例。集合的架构@H_944_3@collection如下所示:

@H_944_3@{
  _id: "some_id",field1: "value1",field2: "value2",subdocument1: {
    // A subdocument with some fields
  },subdocument2: {
    // A subdocument with some other fields
  }
}

字段@H_944_3@field1和@H_944_3@field2总是存在的,但@H_944_3@subdocument1并@H_944_3@subdocument2会在不同的时刻被插入:一个第一插入期间,第二与随后的更新。

我看到@H_944_3@mongoTemplate有和upsert方法。使用这种方法,我必须构建自己的更新操作。

@H_944_3@Query query = Query.query(Criteria.where("_id").is("some_id"));
update.update("_id","some_id")
      .set("field1","value1")
      .set("field2","value2")
      .set("subdocument1",subdocumentObject);
mongoTemplate.upsert(query,update,Collection.class);

我不知道这是我在寻找什么,还有没有更好的方法。

大佬总结

以上是大佬教程为你收集整理的Spring Data Mongo:更新了各个领域的upsert全部内容,希望文章能够帮你解决Spring Data Mongo:更新了各个领域的upsert所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。