什么是BSON,和JSON有什么不同?

我刚刚开始与mongoDb和我已经注意到的一个事情是,它使用bson内部存储数据。但是文档不完全清楚什么BSON是什么,以及如何在mongoDb中使用它。有人可以解释它我好吗?

BSON是MongoDB在集合中存储文档时使用的类JSON文档的二进制编码。 它增加了对数据types的支持,如JSON中不支持的date和二进制。

实际上,在使用MongoDB时,您不必了解很多关于BSON的知识,在构build文档时,您只需要使用语言的本机types和驱动程序提供的types(例如ObjectId),并将它们映射到司机适当的BSONtypes。

MongoDB在后台用二进制编码格式表示名为BSON的JSON文档。 BSON扩展了JSON模型以提供额外的数据types,并且在不同的语言中编码和解码效率很高。

  • 什么是BSON

    BSON [bee·sahn]是二进制JSON的缩写,是一个类似JSON文档的二进制编码序列化。

  • JSON有什么不同?

BSON被devise成在空间上是高效的,但在某些情况下,效率不如JSON高。 在某些情况下,BSON比JSON使用更多的空间。 这是BSONdevise目标中的另一个原因:可穿越性。 BSON为文档添加了一些“额外”信息,如string和子对象的长度。 这使得遍历更快。

BSON也被devise为快速编码和解码。 例如,整数存储为32(或64)位整数,所以它们不需要从文本中parsing出来。 这对于小整数使用比JSON更多的空间,但parsing起来要快得多。

除了紧凑性外,BSON还增加了JSON中不可用的其他数据types,特别是BinDataDate数据types。

来自http://bsonspec.org/

通过在JSON之上使用BSON编码,MongoDB获得了以原始格式驻留在JSON文档内的值之上创build索引的function。 这有助于运行高效的分析查询,因为NoSQL系统以不支持索引而闻名。