【问题标题】:Java Mongodb Update or Insert with _idJava Mongodb 使用 _id 更新或插入
【发布时间】:2020-03-07 05:34:55
【问题描述】:

我们需要使用 Java MongoDB 驱动程序将以下文档插入到 mongodb,以下是详细信息:

插入 {_id="20190304", val1="data1"}

-如果集合中已经存在_id="20190304"的文档,则将数据(val1="data1")附加到文档中,它应该保留以前的数据

  • 如果集合中没有文档,带有_id="20190304",插入文档{_id="20190304", val1="data1"}

  • 所以如果集合有一个文档 {_id="20190304", val1="data1"} 并且如果我们插入具有相同 _id {_id="20190304", valnew="data2"} 的新文档,那么它应该附加额外的字段,即它应该是 {_id="20190304", val1="data1", valnew="data2"}

【问题讨论】:

  • 您是否尝试过将 $set 运算符与 upsert=true 一起使用?测试类似:update({_id: yourid}, {$set: {val1="data1"}}, upsert=true)

标签: java spring mongodb


【解决方案1】:

对于前两种情况,您只需将 upsert 值设置为 true 进行更新操作(如果您使用的是 MongoRepository,则执行 upsert 操作)。

您提到的最后一种情况是不可能的,因为它与第一种情况发生冲突:如果已经存在具有相同 id 的实体,则不能进行插入。

【讨论】:

    猜你喜欢
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2016-05-08
    相关资源
    最近更新 更多