我在处理向/从JSON对象序列化/反序列化Scala数据类型然后以BSON形式将它们存储到MongoDB中时遇到了很多麻烦。
第一个问题:为什么Play Framework使用JSON为什么MongoDb使用BSON。
第二个问题:如果我没有错,Javascript没有读者和作者从MongoDB序列化/反序列化BSON。怎么会发生这种情况? Javascript可以无缝地处理JSON,但对于BSON,我希望它需要某种读者和作者。
第3个问题:(我在某处读到)为什么Salat和ReactiveMongo使用不同的机制与MongoDB交谈。
答案 0 :(得分:1)
JSON是目前广泛使用的传输数据格式。非常好,从包装盒中取出#34;在Web框架中。这就是Play有它的原因。
mongo使用它的原因相同 - 最好以与用户查询相同的格式存储数据并保存。那么为什么mongo使用BSON但使用JSON?好吧,BSON与JSON相同,但在每个值上都有其他属性 - 数据长度和数据类型。这样做的原因 - 当你查看大量数据(比如db query do)时,你需要读取JSON中的所有对象才能获得另一个。如果我们知道数据的长度,我们可以跳过阅读。
所以你不需要JS中的任何BSON读者(它可能在某处但很少使用),因为BSON是内部数据库使用的格式。
您可以阅读this article了解更多信息