设为首页 收藏本站
查看: 915|回复: 0

[经验分享] mongo简介——BSON

[复制链接]

尚未签到

发表于 2016-12-2 07:37:10 | 显示全部楼层 |阅读模式
  既然是简介,当然就是一个大纲性质的东西。
  内容太多加上时间有限,要分成好几篇发。
  第一部分,mongodb的数据存储格式——BSON
  BSON是类似JSON的二进制数据格式,所有数据类型可以分为_ID、字符串、数字、日期时间、大字段blob、数组和自定义类型。
  每个文档保存时,开头字节表示文档的尺寸;每个键值对的键以表示属性类型的数字开头(究竟这些数据类型的数字编码是什么我也没找到相应的资料,有知道的同学请告知。目前只知道7是ObjectID,2是字符串),中间是属性名,属性以null结束,所有属性都由字符串保存;接下来就是键值。
  _ID,一个文档只能有一个;如果不指定,MONGO会在保存数据时按如下规则自动生成。
  自动生成的_ID类型叫做和ObjectID,一个自动生成的_ID占12字节,开头字节是从公元元年开始的秒数,接下来字节是机器id,接下来字节是进程id,最后字节是进程局部计数器,每创建一个文档,计数器自动增1。
  mongo的每种数据类型都有一个整数编号。可以使用$type查询命令配置类型编号查询指定文档属性是指定类型编号的那些文档。
  ObjectId:类型编号是7。默认的文档主键。 
  字符串:类型编号是2。mongo的字符串必须是UTF8格式保存到文档。
  数字类型:类型编号是1。mongo支持的数字类型分别是double/int/long,对应的javascript类型是NumberLong NumberInt NumberDouble,mongo不支持定点小数。
  日期时间:类型编号是9。是带符号的64位整数毫秒数,月份从0开始(即January对应的月份是0,December对应的月份是11),是从1970-1-1午夜开始的协调世界时。
  布尔型:类型编号是8。取值只有true或false。
  正则表达式:类型编号是11。可以把正则表达式作为值保存。 
  数组:没找到类型编号,有知道的朋友请告知。按照javascript或json数组理解即可。
  文档类型:类型编号是3。 
  自定义类型:也就是前面提过的文档嵌套,子文档作为自定义类型存在。
  函数/代码:类型编号是13。可保存JAVASCRIPT代码。
  二进制类型:不知道类型编号。可保存二进制数据,相当于RDBMS的blob。
  空值:类型编号是10。nil(注意这里可不是null也不是NULL了,而是nil)
  undefined:类型编号是6。表示未定义类型
  可能是版本的原因,官网给出的类型编号跟我测试的结果不一样。
  请看这个url:http://runfriends.iyunv.com/blog/1832302

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-308338-1-1.html 上篇帖子: mongo之mapReduce 下篇帖子: mongo简介——$addToSet,update
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表