使用线程池保存OperateLog时出现以下错误:

E11000 duplicate key error collection: ooomap.operate_log index: _id_ dup key: { : ObjectId('5e7fec87e28361433481a75b') }


这是我的示例代码片段:

public void run() {
    try {
        for (int i = 0; i < 200000; i++) {
            logger.info("start save operateLog "+ JSON.toJSONString(operateLog));
            this.operateLogService.createOperateLog(operateLog);
            logger.info("save operateLog success ");
        }
    } catch (Exception e) {
        logger.error("save operateLog error",e);
    }
}


对这个问题有任何帮助/建议吗?谢谢。

最佳答案

使用synchronized block while persisting in MongoDB
或者,请共享operationLog的Document pojo

希望这会成功!

关于java - 在mongo中插入记录时重复键错误索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60908995/

10-11 04:53