gpt4 book ai didi

mongo-go - 使用 mongodb-go-driver 如何获取内部异常

转载 作者:行者123 更新时间:2023-12-03 15:22:35 38 4
gpt4 key购买 nike

当我使用新的 插入集合时MongoDB 去 驱动程序我得到一个重复的异常,我可以在喷出它时看到它。 (mongo.WriteException)多个写入错误:

[{write errors: [{E11000 duplicate key error collection: fhir.documents index: enterprise_id_1 dup key: { : "Cache-37", : "102" }}]}, {}]



我如何才能以编程方式知道它是一个重复的键并且我可以处理它?

最佳答案

你用这个让我头疼。
在您自己的答案的基础上,我制作了一个模仿 mgo.IsDup() 的辅助函数使用 errors.As 并遍历 WriteErrors 以查找代码 11000。

func IsDup(err error) bool {
var e mongo.WriteException
if errors.As(err, &e) {
for _, we := range e.WriteErrors {
if we.Code == 11000 {
return true
}
}
}
return false
}

我的数据库包中有它,所以我可以调用 db.IsDup(err)
我想如果我需要它,我只会抽象循环以检查更多错误代码,但至少这样我可以从 mgo 迁移而少一点麻烦。

关于mongo-go - 使用 mongodb-go-driver 如何获取内部异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916969/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com