Mongodb - org.springframework.dao.DuplicateKeyException

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

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

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

posted @ 2023-06-15 10:01  忙碌了一整天的L师傅  阅读(103)  评论(0编辑  收藏  举报