InsertMany 抛出 E11000 重复键错误但插入成功

pha*_*ong 3 mongoose mongodb node.js

我正在使用 mongoose 将批量数据插入数据库。该insertMany尽管数据被保存掷E11000重复键错误数据库中获得成功。

这是我的代码:

  var data = [
      {_id: '598d7ae7c3148a6d853866e8'}, 
      {_id: '598d7afdc3148a6d853866f4'}
    ]
Movies.insertMany(data, function(error, docs) {});
Run Code Online (Sandbox Code Playgroud)

这种情况很少发生。

感谢任何帮助。

谢谢

rob*_*lep 7

MongoDB 不支持事务。

因为您的操作是有序的(默认),MongoDB 开始插入文档,直到所有文档都已写入,或者遇到错误(例如,当 _id数据库中已存在 '),此时 MongoDB 将停止插入其余的文件。

因此,如果您尝试插入 10 个文档,并且在 5 个文档之后发生错误,则前 5 个文档将被插入,但其余的则不会。这是记录在这里

同一份文件还建议如何处理这个问题:禁用排序,因为“使用ordered[set] to false,插入操作将继续处理任何剩余的文档。”

Movies.insertMany(data, { ordered : false }, function(error, docs) { ... });
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答。我在此处创建问题之前已阅读过有关此内容的信息。但就我而言,没有可能导致错误 E11000 的重复键 (_id)。我的目标系列是全新的。 (2认同)