iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >使用 mongo-go-driver,如何有效地从 WriteError 中检索重复的字段名称?
  • 508
分享到

使用 mongo-go-driver,如何有效地从 WriteError 中检索重复的字段名称?

2024-04-04 23:04:23 508人浏览 安东尼
摘要

最近发现不少小伙伴都对golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《使用 mongo-go-driver,如何有效地从 WriteError 中检索重复的字段名称?》主要

最近发现不少小伙伴都对golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《使用 mongo-go-driver,如何有效地从 WriteError 中检索重复的字段名称?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我的集合中有三个唯一索引。当用户不小心在字段 b 中插入重复的数据时,我如何知道重复项来自字段 b

在违反唯一索引约束时,mongo-go-driver 行为返回 err writeexception,它基本上由 writeerror 数组和其他一些对象组成。

writeerror 本身(来自 mongo-go-driver):

// writeerror is an error that occurred during the execution of a write operation. this error type is only returned as part
// of a writeexception or bulkwriteexception.
type writeerror struct {
    // the index of the write-in the slice passed to an insertmany or bulkwrite operation that caused this error.
    index int

    code    int
    message string
}

在调试会话期间,我发现 writeerror 的值为:

{
    Index: 0
    Code: 11000
    Message: E11000 duplicate key error collection: auth.example index: B_1 dup key: { : "default-role-external-user" }
}

我知道我总是可以通过 code (11000) 推断出唯一约束违规,但该库没有提供单个字段来检索导致重复错误的字段名称。

我知道我总是可以解析 message 字符串作为最后的手段,但考虑到 golang 和 mongoDB 已经共存了很长一段时间,而且我确信我不是唯一遇到这个问题的人,我期待更强大和更有效的方法来检索导致重复错误的字段名称,我还没有找到。


解决方案


简短而令人悲伤的答案是,目前官方 mongo-go 驱动程序没有更好的方法。

好了,本文到此结束,带大家了解了《使用 mongo-go-driver,如何有效地从 WriteError 中检索重复的字段名称?》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!

您可能感兴趣的文档:

--结束END--

本文标题: 使用 mongo-go-driver,如何有效地从 WriteError 中检索重复的字段名称?

本文链接: https://www.lsjlt.com/news/596180.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作