【问题标题】:JSON object or JSON string? Which is better to store in database? [closed]JSON 对象还是 JSON 字符串?哪个更好地存储在数据库中? [关闭]
【发布时间】:2021-04-11 08:56:04
【问题描述】:

我有点困惑,如果我想在 db 中存储 json 对象和数组,那么哪种方式更好。我可以直接按原样存储它们,也可以先使用方法JSON.stringify() 将其转换为字符串,然后再存储。并使用方法JSON.parse() 重用它。 我使用 cloud firestore 作为我的数据库,因为它对一个文档有 20K 字段限制,所以我得出的结论是,无论哪个对象有可能拥有超过 20K 字段(例如画布绘图),这些都应该存储为字符串.但我仍然希望更清楚地了解对于小型数组和对象我应该更喜欢哪种方法:

  1. 性价比高
  2. 性能优化
  3. 其他我不知道的因素

【问题讨论】:

  • JSON 始终是一个字符串。
  • @NinaScholz JSON 不是字符串。它是一种存储和转换数据的格式。你最好重新检查你发送的链接或谷歌它。
  • 您的维基百科链接显示:JSON 是一种开放的标准文件格式和数据交换格式formatstring 之间有明显的区别。请检查您共享的信息。如果它已经是一个字符串,那么我们为什么使用JSON.stringify() 方法将任何对象转换为字符串。请考虑一下。
  • stringify 采用一些 javascript 类型并将其转换为字符串。结果是 JSON。 json 文件也是一个字符串(需要解析),与 javascript 文件(不需要解析)相反。

标签: javascript database firebase google-cloud-firestore


【解决方案1】:

Firestore 专门针对存储 JSON 对象进行了优化和营销,这意味着如果您不使用这种格式,您将错过 Firestore 提供的许多功能,并且必须自己实现。

例如,将用户的数据存储为字符串(以 JSON 格式,但不告诉 Firestore)意味着您将无法使用 powerful firestore query system,因为它不知道哪个格式化数据,因为它只是一个字符串。因此,您必须将所有用户获取到客户端,然后手动查询该数据,这意味着占用大量 RAM 和网络。

更新时,您必须通过网络传输对象字符串表示的所有字节,以便修改即使是单个小字段。但是,如果存储为对象,您可以修改特定字段而无需传输整个有效负载。

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多