MongoDB:JSON and BSON
目录
什么是 JSON
MongoDB-JSON连接
什么是 BSON
MongoDB 使用 BSON 还是 JSON
JSON 与 BSON
架构灵活性和数据治理
- JSON 和 BSON 是近亲,正如它们几乎相同的名称所暗示的那样
- JSON(即 JavaScript 对象表示法)是网络上广泛流行的数据交换标准
- BSON(二进制 JSON)就是基于该标准
什么是 JSON
- JSON(即 JavaScript 对象表示法)是一种人类可读的数据交换格式,在 2000 年代初指定
- 尽管 JSON 是基于 JavaScript 编程语言标准的子集,但它完全独立于语言
- JSON 对象是关联容器,其中字符串键映射到值(可以是数字、字符串、布尔值、数组、空值 — null,甚至是另一个对象)
- 几乎所有编程语言都有这种抽象数据结构的实现—JavaScript 中的对象、Python 中的字典、Java 和 C# 中的哈希表、C++ 中的关联数组等等
- JSON 对象易于人类理解,也易于机器解析和生成

- 主要用于:
- APIs
- 配置文件
- 记录消息
- 数据库存储
MongoDB-JSON连接
- MongoDB 从一开始就被设计为一个专注于提供出色开发体验的数据库
- JSON 的普遍存在使其成为表示 MongoDB 文档数据模型中的数据结构的明显选择
- 然而,有几个问题使得 JSON 不太适合在数据库内部使用
- 1-JSON 仅支持有限数量的基本数据类型;最值得注意的是,JSON 缺乏对日期和二进制数据的支持
- 2-JSON 对象和属性没有固定长度,这使得遍历速度变慢
- 为了使 MongoDB 成为 JSON 优先,但仍然具有高性能和通用性
- BSON 的发明弥补了这一差距:一种以 JSON 格式存储数据的二进制表示形式,并针对速度、空间和效率进行了优化
什么是 BSON
- BSON 代表“二进制 JSON”,这正是它被发明的目的
- BSON 的二进制结构对类型和长度信息进行编码,这使得它的遍历速度比 JSON 快得多
- BSON 添加了一些非 JSON 原生数据类型,例如日期和二进制数据,如果没有这些数据类型,MongoDB 将失去一些有价值的支持
- 以下是一些示例:JSON 对象及其相应的 BSON 表示形式

MongoDB 使用 BSON 还是 JSON
- MongoDB 在内部和网络上以 BSON 格式存储数据,但这并不意味着您不能将 MongoDB 视为 JSON 数据库
- 您可以用 JSON 表示的任何内容都可以本机存储在 MongoDB 中,并且可以在 JSON 中轻松检索
- 当使用您最喜欢的编程语言的 MongoDB 驱动程序时,您将使用该语言的本机数据结构
- 当查询数据库时,驱动程序将负责将数据转换为 BSON 并返回
- 与将 JSON 存储为字符串编码值或二进制编码 blob 的系统不同,MongoDB 使用 BSON 在 Web 最流行的数据格式之上提供强大的索引和查询功能
- 例如,MongoDB 允许开发人员通过 JSON/BSON 文档中的特定键查询和操作对象
- 甚至在深入记录的多层嵌套文档中,在那些相同的键和值上可以创建高性能索引
JSON 与 BSON

- JSON 和 BSON 在设计上确实是近亲
- BSON 被设计为 JSON 数据的二进制表示形式,具有针对更广泛应用的特定扩展,并针对数据存储和遍历进行了优化
- 就像 JSON 一样,BSON 支持嵌入对象和数组
- BSON 与 JSON 的一个特殊区别在于它支持一些更高级的数据类型
- 例如,JSON 不区分整数(整数)和浮点数(具有不同程度的小数精度)
架构灵活性和数据治理
- 对于使用具有 JSON 和 BSON 数据模型的数据库的开发人员来说
- 最大的吸引力之一是与关系数据库使用的严格的表格数据模型相比,它们提供的动态且灵活的模式
- 首先,MongoDB 文档是多态的——单个集合中不同文档的字段可能不同(类似于关系数据库中的表)
- 这种灵活性使得对任何结构的数据进行建模并根据需求变化调整模型变得更加容易
- 其次,不需要向数据库声明文档的结构——文档是自描述的;开发人员可以开始编写代码并在创建对象时保留它们
- 最后,如果需要将新字段添加到文档中,则可以在不影响集合中的所有其他文档的情况下创建新字段,无需更新中央系统目录,也无需使数据库脱机
- 当您需要更改数据模型时,文档数据库会继续存储更新的对象,而无需执行昂贵的 ALTER TABLE 操作 - 或者更糟糕的是,必须从头开始重新设计架构
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
