0

我是 MongoDB 的新手,我正在努力弄清楚 MongoDB GridFS 是否适合我的用例。我有一个大的 JSON,我想将它存储在数据库中。JSON具有以下格式

{
    "task":"12345",
    "items":[ 
                item1: [subitem11:[f1,f2,..fn],subitem12:[f1,f2,..fm],....,subitem1n:[f1,f2,..fk]],
                item2: [subitem21:[f1,f2,..fn],subitem22:[f1,f2,..fm],....,subitem1m:[f1,f2,..fk]].
                .
                .
                itemn:[subitemn1:[f1,f2,..fn],subitemn2:[f1,f2,..fm],....,subitemnk:[f1,f2,..fk]]
            ],
}

item 和 subitem 是字符串数组,可以非常大。

JSON 大小可以大到 250MB(最坏情况),并且数据库中可以有很多文档。我的读/写模式如下。

写:给定任务和/或项目和/或子项目,我希望能够更新项目或子项目数组

阅读: 给定任务和/或项目和/或子项目,我希望能够读取子数组

我的问题如下:

  1. 有没有一种方法可以存储如此大的 JSON,并且仍然能够使用 MongoDB GridFS 快速更新/读取它?据我了解,MongoDB GridFS 将像视频文件这样的大文件分割成块并存储这些块。我不清楚 MongoDB 将如何拆分大型 JSON,以及我将如何快速执行读写操作。

  2. MongoDB 是此类数据的正确选择吗?如果没有,我可以考虑哪些其他数据库?注意:我想在未来扩展这个应用程序,每个文档/项目/子项目独立于其他,即数据中没有关系。

我尝试在 Internet 上搜索此内容,并参考了 MongoDB 文档,但无法弄清楚这一点。

https://docs.mongodb.com/manual/core/gridfs/

提前感谢您的指点。

4

1 回答 1

0

GridFS 允许存储和检索大文件。它不对文件的内容进行任何操作。

鉴于数据的明显结构,我建议创建一个items集合并将每个项目作为文档插入到该集合中。

于 2020-06-11T14:13:08.980 回答