时间:2021-07-01 10:21:17 帮助过:27人阅读
写入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的显示问题
标签:很多 一个 base ref 格式 映射 没有 def 示例