Как я могу игнорировать ошибку дублирующего ключа и продолжить вставку, при этом вставляя много документов с MongoDB-m go? - PullRequest
1 голос
/ 02 марта 2020

Когда я вставляю несколько документов с помощью вставки (документы ...), операция не выполняется и не удается вставить документы, если в списке документов существует один дубликат ключа в документе. Как я могу игнорировать эту ошибку, поэтому все документы, но не дубликаты, могут быть успешно вставлены.

1 Ответ

1 голос
/ 02 марта 2020

По умолчанию, когда вы вставляете документы, используя .insertMany() MongoDB или подобное, тогда будет порядок вставки { ordered: true }, где, если при вставке документа в массив документов произойдет ошибка, вся операция завершится неудачей, если не вставить эту конкретный документ и остальные остальные после этого. Таким образом, чтобы сделать этот процесс неупорядоченным, вам нужно передать параметр .insertMany(), который равен { ordered: false }.

Ref: MongoDB-insertMany-Unordered-insertts

Поэтому, когда дело доходит до драйвера m go, вам может понадобиться func (b *Bulk) Unordered().

Ref: m go - Не указано

Примечание: Лучшим вариантом будет проверить, почему произошла ошибка дублирующего ключа и какой ключ вызывает эту проблему, если у вас есть несколько ограничений уникального ключа на БД & внесите исправления в документы или уникальные индексы на полях, вместо того, чтобы пропускать документы из вставок.

...