gpt4 book ai didi

mongodb - 在 mongodb 中存储表(电子表格)数据的最佳方式

转载 作者:可可西里 更新时间:2023-11-01 10:00:37 25 4
gpt4 key购买 nike

当表大小固定时,要在 Mongodb 中存储类似表的数据,可以使用数组。但是当表格可以增长(如电子表格)甚至更灵活(动物园中一个物种的动物数量,物种和动物园都可以扩展)时,这将不起作用。所以我想更像是:

{
"name": "spreadsheet example",
"cells": [
{
"row": 1,
"col": 1,
"val": 4
},
{
"row": 1,
"col": 2,
"val": 9
},
{
"row": 1,
"col": 3,
"val": "a1+a2"
}
]
}

这会起作用,甚至对于稀疏表也很有效,但是当将表呈现为 HTML 时,它需要查找每个单元格,或者构建一些中间数据结构。此外,通过这种方式,可以在更新中使用“$”位置运算符更新单个单元格,但如果我们有多个选项卡,则会出现问题,因为“$”无法嵌套...

是否有更好的方法将这些信息存储在 mongodb 中?我考虑过使用行/列名称作为字段名称,但这会导致动态字段名称,也可能不是最佳解决方案。

最佳答案

您的方法让我担心的是:

  • The maximum BSON document size即 16 兆字节,即意味着您无法将大型电子表格存储在单个文档中。
  • 使用“$”运算符访问数组项有点复杂
  • 它有很多存储开销(为每个单元格保留行/列信息。我宁愿使用更自然的模式:

    {_id:行号,col_a:value_of_column_A,....,col_n:value_of_column_n}

并将一个集合专门用于一个电子表格或:

{_id: spreadsheet_name, row: row_number, col_a:value_of_column_A, .... , col_n:value_of_column_n}

如果您想为每个集合容纳多个电子表格。这样您还可以使用有意义的标题名称而不是列号。我写了an open sourced module in python使用上述模式通过 xlrd 将电子表格或完整工作簿自动导入到 mongoDB。

关于mongodb - 在 mongodb 中存储表(电子表格)数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32505898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com