bson和json
mongodb中的数据存储是以Bson的形式存储的,Bson是二进制的json,所以看上去记录的形式类似于json数据。
mongodb集合中的数据,不同于sql型数据库中的数据,mongodb中文档结构可以不同,可以使用嵌套的文档结构,因此扩展性非常好
JSON 是把对象序列化为字符串,BSON 是把对象序列化为二进制。
BSON 还比 JSON 多支持了几种数据类型,如Date和BinData类型
JSON修改要大动大移,需要扫字符串,而BSON就不需要,可以直接定位。(可遍历)
BSON的编码与解码速度很快。(高效)
(1)更快的遍历速度
对JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数据读取,需要对此文档进行扫描才行,需要进行麻烦的数据结构匹配,比如括号的匹配,而BSON对JSON的一大改进就是,它会将JSON的每一个元素的长度存在元素的头部,这样你只需要读取到元素长度就能直接seek到指定的点上进行读取了。
2.操作更简易
对JSON来说,数据存储是无类型的,比如你要修改基本一个值,从9到10,由于从一个字符变成了两个,所以可能其后面的所有内容都需要往后移一位才可以。而使用BSON,你可以指定这个列为数字列,那么无论数字从9长到10还是100,我们都只是在存储数字的那一位上进行修改,不会导致数据总长变大。当然,在MongoDB中,如果数字从整形增大到长整型,还是会导致数据总长变大的。