在MongoDB中存储类似JSON的数据的GB

时间:2015-12-09 21:10:17

标签: json node.js mongodb csv meteor

我使用的是MongoDB,因为Meteor并不支持其他任何东西。

主要目标是上传CSV文件,在Meteor中解析它们并将数据导入数据库。

插入的数据大小可以是每个文件50-60GB或更多,但由于文档大小限制,我甚至无法插入大于16MB的内容。而且,即使插入的1/10也需要很长时间。

我在客户端上使用CollectionFS进行CSV文件上传。因此,我尝试将CollectionFS用于数据本身,但它给了我一个不支持的数据"错误。

我该怎么办?

编辑:由于我的问题引起了关于存储数据技术的困惑,我想澄清一些事情:我对上传CSV文件不感兴趣;我对将数据存储在文件中感兴趣。我想在一个地方收集所有用户的数据,我想用最少的资源获取数据。

2 个答案:

答案 0 :(得分:1)

您可以将csv文件作为集合插入(文件名可以成为集合名称),csv的每一行都作为文档。这将达到每个文档大小限制16 MB。你最终可能会收集很多藏品,但这没关系。另一个集合可以跟踪文件名到集合名称映射。

答案 1 :(得分:1)

在CollectionFS中,您可以直接保存文件文件系统,只需添加正确的包并创建您的集合,如下所示:

Csv = new FS.Collection("csv", {
    stores: [
        new FS.Store.FileSystem("csv","/home/username/csv")
    ],
    filter: {
        allow: {
            extensions: ['csv']
        }
    }
});