千家信息网

如何解决Mongodb中关于GUID的显示问题

发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,这篇文章主要讲解了如何解决Mongodb中关于GUID的显示问题,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。发现问题最近将一个程序的存储迁移到了Mongodb,发现了一
千家信息网最后更新 2024年11月12日如何解决Mongodb中关于GUID的显示问题

这篇文章主要讲解了如何解决Mongodb中关于GUID的显示问题,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

发现问题

最近将一个程序的存储迁移到了Mongodb,发现了一个现象,Guid类型写入后,在程序里面读取的和用客户端工具展示的不一样,一个简单的示例如下:

 var doc = new {_id = 1, Value = Guid.Parse("{B63932BB-9688-432B-B3A0-C4AE3FD2696A}") }; collection.InsertOne(doc.ToBsonDocument());

写入DB后,我们从客户端工具来查看它:

通过对比可以发现,展示的值和写入的形式不一样,但是读取到的值却是没有问题的。这个问题可以从官方的文档规范中找到答案:

官方文档: http://bsonspec.org/spec.html

Mongodb中是将uuid其作为二进制类型存储的,用一个subtype来标记其类型为uuid,在对C#,java,python提供的驱动中,默认是将其子类型映射了为3(Legacy UUID),这个在客户端工具中也是有所展示的:

实际上,大多数客户端工具也是能支持将Legacy UUID展示成我们写入时候的那个样子。

解决方法

虽然这个不影响程序的功能,但由于第一眼看到的字符串不是写入的格式,很多时候是影响我们调试程序的。一个较好的解决方法是默认将以标准的UUID格式存储,只需要设置一个全局配置即可:

 BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; 

这样就方便多了:

看完上述内容,是不是对如何解决Mongodb中关于GUID的显示问题有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

问题 客户 客户端 工具 程序 类型 内容 存储 中关 官方 文档 方法 时候 格式 学习 影响 二进制 全局 兴趣 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器 交换机 存储 经管类的数据库 天盛科技移动互联网营销 做软件开发的项目担当有哪些 吉林省创意网络技术有限公司 服务器如何分配独立ip 数据库嵌套查询概念 如何杜绝网络安全事件 网络安全法保障个人对其信息 数据库连接的概念 舆情网络安全方案 服务器的无线接收器怎么用 灞桥区市场监管局紧盯网络安全 模具和计算机网络技术哪个好 黑魂3无法连接服务器怎么联机 上海要娱乐网络技术有限公司 分布式数据库解决方案 华为服务器删除操作系统 即时聊天软件开发成本 软件开发需要的项目负责人 吃鸡的端游和手游在一个服务器吗 北京国健慧康网络技术 北京美信网络技术招聘信息 黄金岛服务器 如何开展网络安全周活动 网络安全画画的手抄报 操作系统可以管理数据库 软件开发版本管理软件 即时聊天软件开发成本 电脑上怎么建立数据库
0