Mongodb - org.springframework.dao.DuplicateKeyException
首先明确场景为mongodb,此异常在进行mongodb的插入操作时抛出,插入的主键已经存在。
衍生场景,使用upsert时抛出,此处的包括了$set和$setOnInsert
由于upsert非原子操作,如果在多线程环境下:线程A和线程B同时对数据库未存在的记录record1进行upsert,有可能会出现两个线程都判断为应该进行插入操作而非更新操作,进而抛出DuplicateKeyException