E11000重复键错误集合索引:mongo驱动中的_id_

问题描述

我在我的服务中使用 InsertMany 方法将 1000 个文档插入到 MongoDB(在 AWS DocumentDB 中)。当我在 AWS 中使用一个 pod 时它工作正常。但是如果我将我的服务扩展到 2 个或更多 Pod,它会抛出 E11000 duplicate key error collection: myDB index: _id_。有人可以帮忙解决这个问题吗?

解决方法

这意味着您正在尝试插入与现有 unique index 冲突的文档,在本例中是由 _id 字段引起的。

如果没有看到代码,很难确切地说出发生了什么,但是正如您提到的,当您扩展时会发生这种情况,这两个服务似乎都在尝试插入所有文档,而一旦您尝试插入已经插入的文档插入这个错误被抛出。

您应该修正缩放方法,以便每个进程都在自己的文档共享上运行,这样您就不会尝试两次插入同一文档。