我使用的是MongoDB,因为Meteor并不支持其他任何东西。
主要目标是上传CSV文件,在Meteor中解析它们并将数据导入数据库。
插入的数据大小可以是每个文件50-60GB或更多,但由于文档大小限制,我甚至无法插入大于16MB的内容。而且,即使插入的1/10也需要很长时间。
我在客户端上使用CollectionFS进行CSV文件上传。因此,我尝试将CollectionFS用于数据本身,但它给了我一个不支持的数据"错误。
我该怎么办?
编辑:由于我的问题引起了关于存储数据技术的困惑,我想澄清一些事情:我对上传CSV文件不感兴趣;我对将数据存储在文件中感兴趣。我想在一个地方收集所有用户的数据,我想用最少的资源获取数据。
答案 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']
}
}
});