主键值的数据类型问题,JSON&BSON?
看主键值Obj("5da188ebda46b83f50e8fe8d"),应该是一个24位,十六进制的字符串。
问1:为什么说是一个12字节的BSON类型字符串?
问2:计算机底层都是用过二进制存储的,BSON是二进制的存储格式,为嘛不是0和1位单位 ,而是十六进制位单位。
问3:MongoDB是把数据存成16进制,计算机在把16进制存成二进制吗?
问4:JSON是一个序列化的对象或数组。怎么定义成二进制数据类型?
正在回答 回答被采纳积分+1
同学你好:
BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON。"_id",类型为ObjectId。ObjectId 使用12 字节的存储空间,每个字节两位十六进制数字,是一个24 位的字符串。
1 官方文档:ObjectId的值包含12字节(12 bytes),头4个字节是创建该字段的时间戳。12字节分别如下:
4字节:UNIX时间戳
3字节:表示运行MongoDB的机器
2字节:表示生成此_id的进程
3字节:由一个随机数开始的计数器生成的值
2 数据的id确实是以二进制的形式存储的,二进制是计算机底层的计算,任何的数字在计算机中计算都要转换成二进制去计算。为了友好的展示存储的_id,因此转换为16进制。
3 Mongodb是以文档的形式存储数据的,他的风格比较类似于JSON。文档类似于编程语言中的键和值的方式联系在一起的。严格意义来讲,MongoDB文档是BSON文档。BSON文档是带有附加类型信息的二进制JSON文档。在文档里,字段的值可以是任何BSON数据类型,他们可以是其他的文档,数组,和数组文档。

4 BSON是一个类似于JSON的二进制的存储方式,不是讲JSON转换为二进制就是BSON。
文档在计算机的存储形式是以二进制的方式进行存储的。
如果我解决了同学的问题,请采纳!学习愉快。
- 参与学习 人
- 提交作业 625 份
- 解答问题 2669 个
数据库作为企业储存和管理数据的根本,掌握数据库是每个开发工程师必备的技能,本阶段带你学会用Python操作MySQL、Redis和MongoDB三大主流数据库。夯实数据库基础。
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星