我如何在使用MongoDB-mgo插入许多文档的同时忽略重复的键错误并继续插入?

问题描述 投票:1回答:1

当我使用insert(docs ...)插入多个文档时,如果文档列表中存在一个文档中的重复键,操作将失败并且无法插入文档。如何忽略此错误,因此可以成功插入所有文档,但不能插入重复的文档。

mongodb go mgo
1个回答
0
投票

默认情况下,当您使用MongoDB的.insertMany()或类似名称插入文档时,将按顺序插入{ ordered: true },如果在将文档插入文档数组中时出现错误,则整个操作将因未插入该特定字符而失败在那之后记录并休息其他人。因此,要使此过程无序,您需要将一个选项传递给.insertMany(),即{ ordered: false }

Ref: MongoDB-insertMany-Unordered-inserts

因此,当涉及到[[mgo驱动程序时,您可能需要使用func (b *Bulk) Unordered()

Ref:

mgo-Unordered

注意:

最好的选择是检查为什么重复键错误发生以及如果您在数据库上有多个唯一键约束并更正文档或字段上的唯一索引,则是哪个键导致了此问题,而不是从插入内容中跳过文档。
© www.soinside.com 2019 - 2024. All rights reserved.