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

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

创新互联建站专业为企业提供猇亭网站建设、猇亭做网站、猇亭网站设计、猇亭网站制作等企业网站建设、网页设计与制作、猇亭企业网站模板建站服务,十年猇亭做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

发现问题

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

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

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

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

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

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

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

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

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

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

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

解决方法

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

 BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; 

这样就方便多了:

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

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

当前标题:如何解决Mongodb中关于GUID的显示问题
网页URL:https://www.cdcxhl.com/article12/pdgodc.html

成都网站建设公司_创新互联,为您提供服务器托管ChatGPT微信小程序用户体验网站排名外贸网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名