【问题标题】:Why Play Framework uses JSON why MongoDb uses BSON为什么 Play Framework 使用 JSON 为什么 MongoDb 使用 BSON
【发布时间】:2015-09-15 09:42:45
【问题描述】:

在处理将 Scala 数据类型序列化/反序列化到 JSON 对象/从 JSON 对象中序列化/反序列化,然后以 BSON 形式将它们存储到/从 MongoDB 中时,我遇到了很多麻烦。

第一个问题:为什么 Play Framework 使用 JSON 为什么 MongoDb 使用 BSON。

第二个问题:如果我没记错的话,Javascript 没有用于从 MongoDB 序列化/反序列化 BSON 的读取器和写入器。这怎么可能发生? Javascript 可以无缝处理 JSON,但对于 BSON,我希望它需要某种阅读器和编写器。

第三个问题:(我在某处读到)为什么 Salat 和 ReactiveMongo 使用不同的机制与 MongoDB 对话。

【问题讨论】:

    标签: json mongodb scala playframework bson


    【解决方案1】:

    JSON 是当今广泛使用的数据传输格式。在 Web 框架中“开箱即用”拥有它真是太好了。这就是Play拥有它的原因。

    mongo 使用它的相同原因 - 以与用户查询数据相同的格式存储数据并保存它是一个好主意。那么为什么 mongo 使用 BSON 而不是 JSON 呢?嗯,BSON 与 JSON 相同,但每个值都有额外的属性——数据长度和数据类型。原因 - 当您查看大量数据时(如 db 查询),您需要读取 JSON 中的所有对象以获取另一个对象。如果我们知道数据的长度,我们可以跳过读取。

    所以你在 JS 中不需要任何 BSON 阅读器(它可能在某个地方但很少使用),因为 BSON 是用于内部 DB 使用的格式。

    您可以阅读this article了解更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 2014-07-08
      • 2019-05-06
      相关资源
      最近更新 更多