使用线程池保存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/