将嵌套JSON批量加载到MongoDB中的引用集合中

将嵌套JSON批量加载到MongoDB中的引用集合中,mongodb,Mongodb,我正在寻求将大量嵌套JSON对象导入MongoDB数据库。根据,通常的做法是使用而不是使用来表示这些关系 这里有一个具体的例子。假设我有几十GB的JSON,格式如下,children偶尔有数千个对象长,每个对象有几十个键 { "a" : 1, "b" : 2, "children" : [ { "x": "some long, complicated thing", "y": [5, 6], "huge_

我正在寻求将大量嵌套JSON对象导入MongoDB数据库。根据,通常的做法是使用而不是使用来表示这些关系

这里有一个具体的例子。假设我有几十GB的JSON,格式如下,
children
偶尔有数千个对象长,每个对象有几十个键

{
    "a" : 1,
    "b" : 2,
    "children" : [
       {
         "x": "some long, complicated thing",
         "y": [5, 6],
         "huge_image": "..."
       },
       {
         "x": "some other complicated thing",
         "y": [1, 2, 3],
         "huge_image": "..."
       },
       ...          
    ]
}
似乎很简单,我可能希望将其作为两个集合导入,
父集合
子集合
。(事实上,如果子文档是非常大的文档,比如媒体,我可能不得不这样做。)但是我找不到任何关于如何将现有嵌套数据作为多个集合高效地导入MongoDB的信息

只接受一个
集合
参数。当然可以将数据导入一个集合,然后从第一个集合手动构建第二个集合,并修改第一个集合的每个条目,但这似乎是一个劳动密集型且效率低下的常见问题


这里有我遗漏的东西吗?

孩子们是一个对象或对象数组还是数组?谢谢,那应该是一个对象数组。当你知道一个孩子只属于一个父母时,为什么不;您不能将子项存储为数组子文档,并利用mongodb的无模式特性吗?或者您可能想考虑使用其他数据库。通常的做法是将子文档表示为引用的集合,而不是在MongoDB中嵌入的集合。在某些情况下,这是绝对必要的,因为子文档会使对象对于MongoDB来说太大。在其他情况下,这是因为您有时只想访问子对象,需要对它们编写复杂的查询。请参阅第一个链接,还有:默认情况下,MongoDB不提供对其他集合的引用。它只存储一些值,其他工具可以通过额外查询的成本来引用它们。顺便问一下,数据一致性如何?如果要删除父项1,则始终需要额外的查询来删除子项,以保持数据的一致性。总的来说,它的两侧都在头顶上。如果你没有;I don’我不在乎这些,也不在乎有不同的要求,当然你是唯一需要接电话的人