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

在MongoDB中存储类似JSON的GBs数据,json,node.js,mongodb,csv,meteor,Json,Node.js,Mongodb,Csv,Meteor,我使用MongoDB是因为Meteor不支持官方的任何其他功能 主要目标是上传CSV文件,在Meteor中解析它们,并将数据导入数据库 每个文件插入的数据大小可以是50-60GB或更多,但由于文档大小的限制,我甚至不能插入任何大于16MB的数据。而且,即使是1/10的插入也需要很多时间 我使用CollectionFS在客户端上传CSV文件。因此,我也尝试对数据本身使用CollectionFS,但它给了我一个“不支持的数据”错误 我能做些什么 编辑:由于我的问题造成了对存储数据技术的混淆,我想澄清

我使用MongoDB是因为Meteor不支持官方的任何其他功能

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

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

我使用CollectionFS在客户端上传CSV文件。因此,我也尝试对数据本身使用CollectionFS,但它给了我一个“不支持的数据”错误

我能做些什么


编辑:由于我的问题造成了对存储数据技术的混淆,我想澄清一点:我对上传CSV文件不感兴趣;我对在文件中存储数据感兴趣。我希望在一个地方收集所有用户数据,并希望以最低的资源获取数据。

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

在CollectionFS中,您可以直接将文件保存到文件系统中,只需添加适当的包并创建如下集合:

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

谢谢你的建议。我考虑将数据保存在文件中,但最终,我会为一个用户合并不同的数据,因此我认为将数据保存在数据库中更好。此外,如果我将数据保存在文件中,并在用户每次登录获取单个信息时对其进行解析,这不会导致资源效率低下吗?这难道不意味着只需要一行信息就可以阅读整个文件吗?谢谢你的回答,但我不是在寻找存储文件,我是在寻找存储在文件中的数据,正如我对上述答案的评论:随着时间的推移,我会为一个用户合并不同的数据,所以我认为将数据存储在数据库中更好。此外,如果我将数据保存在文件中,并在用户每次登录获取单个信息时对其进行解析,这不会导致资源效率低下吗?这难道不意味着为了一行信息而读取整个文件吗?