问题描述
public class MyClass {
@Id
private String id;
@Indexed(unique=true)
private int priority;
}
我希望从数据库中的某个点增加所有优先级。 例如,我有优先级为 1,2,3....10 的记录。我想将优先级为 3 的所有记录更新为 1,4,5...,10,11。我想用下面的代码来做到这一点。
var query = new Query();
query.addCriteria(Criteria.where("priority").gte(2)).with(Sort.by(Sort.Direction.DESC,"priority"));
BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.ORDERED,MyClass.class);
var update = new Update().inc("priority",1);
bulkOps.updateMulti(query,update);
bulkOps.execute();
但是,我收到此错误。
org.springframework.data.mongodb.BulkOperationException: 服务器 localhost:27017 上的批量写入操作错误。写入错误:[BulkWriteError{index=0,code=11000,message='E11000 重复键错误集合:myClass index: priority dup key: { priority: 4 }',details={}}]。
我认为按 DESC 排序应该会处理它,但它没有。
提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)