【发布时间】:2017-05-01 08:01:15
【问题描述】:
我的集合具有以下数据结构
{
"Shop": "123",
"date": "28-05-2015",
"Points": {
"a": "1",
"b": "2",
"c": "3"
}
}
这里的 shop 和 date 有唯一的索引,除了 _id 之外没有 id , 因此,如果我只想更新 b 的值并且如果记录匹配(基于 account 和 date )不存在,那么应该创建与 b 的值具有相同结构的新记录。 最重要的部分是它的批量操作意味着我需要每天为所有商店创建/更新记录,这些记录将每天为每个商店创建。因此,如果记录不存在则更新一个点而不是创建它,否则更新现有的记录。我正在使用弹簧。 我尝试使用带有 upsert true 的更新,但它并没有更新,而是创建一个只有更新值的新记录。以及用给定的更新点更新多个商店的最佳方法是什么。
【问题讨论】:
-
你能把upsert代码贴在这里吗?
-
我是在 Mongo shell 本身上做的。使用带有不高兴标志的更新查询作为真......在mongo 3.4中,更新中有$set标志正在工作,但它不在3.0中。意思是我会在几个小时内更新代码。
-
我将添加一些示例代码,您可以根据您的代码对其进行验证。
标签: spring mongodb spring-data upsert