NodeJS,用于CSV数据的MongoDB数据建模

时间:2014-09-29 12:35:24

标签: node.js mongodb csv gridfs

问题

我有一个包含以下数据的CSV文件。

PK,title,year,length,budget,rating,votes,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,mpaa,Action,Animation,Comedy,Drama,Documentary,Romance,Short
1,$,1971,121,NA,6.4,348,4.5,4.5,4.5,4.5,14.5,24.5,24.5,14.5,4.5,4.5,,0,0,1,1,0,0,0
2,$1000 a Touchdown,1939,71,NA,6,20,0,14.5,4.5,24.5,14.5,14.5,14.5,4.5,4.5,14.5,,0,0,1,0,0,0,0

CSV文件大小约为5MB,大约有58,000多行,如上例所示。

当前情景

目前我正在解析上述数据并将其转换为对象并在对象数组中保存到MongoDB。像下面的东西

{ PK: '1',
  title: '$',
  year: '1971',
  length: '121',
  budget: 'NA',
  rating: '6.4',
  votes: '348',
  r1: '4.5',
  r2: '4.5',
  r3: '4.5',
  r4: '4.5',
  r5: '14.5',
  r6: '24.5',
  r7: '24.5',
  r8: '14.5',
  r9: '4.5',
  r10: '4.5',
  mpaa: '',
  Action: '0',
  Animation: '0',
  Comedy: '1',
  Drama: '1',
  Documentary: '0',
  Romance: '0',
  Short: '0' }
{ PK: '2',
  title: '$1000 a Touchdown',
  year: '1939',
  length: '71',
  budget: 'NA',
  rating: '6',
  votes: '20',
  r1: '0',
  r2: '14.5',
  r3: '4.5',
  r4: '24.5',
  r5: '14.5',
  r6: '14.5',
  r7: '14.5',
  r8: '4.5',
  r9: '4.5',
  r10: '14.5',
  mpaa: '',
  Action: '0',
  Animation: '0',
  Comedy: '1',
  Drama: '0',
  Documentary: '0',
  Romance: '0',
  Short: '0' }

虽然我上传文件时收到Document exceeds maximum allowed bson size of 16777216 bytes错误。

我尝试过使用GridFS。该文件正在上传,并且块也准备好了。但是,我不确定我是否可以将数据作为对象数组检索回来。

我需要检索所有数据以进行处理并创建一些分析。

CSV文件是一个数据源。另一个来源是从专有系统上的Web服务获取数据,其中遵循相同的过程。

问题

我认为数据模型和我将数据保存到MongoDB的方式存在缺陷。如果是,那么处理大量数据的最佳方式是什么。

非常感谢任何帮助。

0 个答案:

没有答案