我只是从MongoDB开始,我注意到的一件事是它使用BSON内部存储数据。但是,关于BSON是什么以及在MongoDB中如何使用BSON的文档尚不清楚。有人可以向我解释吗?
BSON是MongoDB在将文档存储在集合中时使用的类似JSON的文档的二进制编码。它增加了对JSON不支持的数据类型(如日期和二进制数据)的支持。
实际上,在使用MongoDB时,您不必了解BSON,只需要在构造文档时使用语言的本机类型及其提供的驱动程序类型(例如ObjectId),即可将它们映射驱动程序将其转换为适当的BSON类型。
什么是BSON?
BSON [bee·sahn],Binary JSON的缩写,是经过二进制编码的类似于JSON的文档的序列化。
与JSON有何不同?
BSON被设计为在空间上高效的,但是在某些情况下,其效率没有比JSON高得多。在某些情况下,BSON比JSON使用更多的空间。其原因是BSON的另一个设计目标:可遍历性。 BSON在文档中添加了一些“额外”信息,例如字符串和子对象的长度。这样可以使遍历更快。
BSON还被设计为快速编码和解码。例如,整数存储为32(或64)位整数,因此不需要在文本之间进行解析。对于小整数,此方法比JSON使用更多的空间,但解析速度要快得多。
除了紧凑之外,BSON添加了JSON中不可用的其他数据类型,特别是BinData和Date数据类型。
MongoDB在后台表示称为BSON的二进制编码格式的JSON文档。 BSON扩展了JSON模型,以提供其他数据类型,并有效地在不同语言中进行编码和解码。
MongoDB以二进制编码格式表示JSON文档,因此我们将其称为幕后BSON。
BSON扩展了JSON模型,以提供JSON中不支持的其他数据类型,例如Date和Binary,并且还提供了有序字段,以便有效地在不同语言中进行编码和解码。 换句话说,我们可以说 BSON只是二进制JSON Mongodb用作JSON的序列化格式