E11000: E11000 duplicate key error collection(E11000 集合中的重复键错误)
MongoDB含义
插入或更新尝试向受唯一索引保护的字段写入集合中已存在的值。MongoDB 拒绝该重复键。
原因
_id 冲突、向具有唯一索引的字段第二次写入相同值、upsert 期间的竞态条件,或唯一索引(非 sparse 索引)中多个文档的 null 值发生冲突。
解决方法
写入前检查文档是否存在,或使用 upsert:db.collection.updateOne(filter, {$set:{...}}, {upsert:true})。查看错误消息中的索引名和 dup key 值。如果实际上不需要唯一性,删除该索引;如果问题出在 null 值,使用 partial/sparse 索引。在应用中捕获错误并重试或报告给用户。