• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 Best Practices for UUID Data

    总结

    以上就是Mongodb中关于GUID的显示问题的详细内容,更多关于Mongodb中GUID显示问题的资料请关注脚本之家其它相关文章!

    上一篇:MySQL必备的常见知识点汇总整理
    下一篇:mysql闪回工具binlog2sql安装配置教程详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Mongodb中关于GUID的显示问题详析 Mongodb,中,关于,GUID,的,显示,