在 Go 專案檢查寫入 MongoDB 的錯誤類型

做法

使用以下方式檢查寫入資料庫的錯誤類型,並且使用錯誤代碼 11000 來檢查是否儲存重複資料。

1
2
3
4
5
6
7
8
9
10
11
12
13
const ErrorDuplicateKey = 11000

opts := options.InsertMany().SetOrdered(false)
_, err := u.GetCollection().InsertMany(ctx, users, opts)

if err, ok := err.(mongo.BulkWriteException); ok {
for _, err := range err.WriteErrors {
if err.Code != ErrorDuplicateKey {
log.Fatalln(err.Error())
}
logger.Warning(err.WriteError.Error())
}
}
  • SetOrdered 表示即使儲存重複鍵名的資料,也不會中斷後續其他資料的儲存。