Mongodb - org.springframework.dao.DuplicateKeyException

发布时间 2023-06-15 10:11:16作者: 忙碌了一整天的L师傅

首先明确场景为mongodb,此异常在进行mongodb的插入操作时抛出,插入的主键已经存在。

衍生场景,使用upsert时抛出,此处的包括了$set和$setOnInsert

由于upsert非原子操作,如果在多线程环境下:线程A和线程B同时对数据库未存在的记录record1进行upsert,有可能会出现两个线程都判断为应该进行插入操作而非更新操作,进而抛出DuplicateKeyException