MongoDB对collection.insert和数据大小的困境

时间:2012-10-09 07:27:46

标签: ruby mongodb mongoid mongodb-ruby

我正在开发这个项目,我必须在MongoDB数据库上执行大量插入

据我所知,MongoDB是一个文档数据库,每个文档的大小都有限制here

现在大量插入代码看起来像这样

RockBand.collection.insert(mass_data)

mass_data是这样的数组哈希

[
  {
   name: "LedZepplin",
   member : 4, 
   studio_album : 10,
   ... 
   ...
   ...
  },
  { 
   name: "Linkin Park",
   member: 5,
   studio_album: 7,
   ...
   ... 
   ...
  },
  {
   ... 
   ...
   },
  ...
  ...
 ]

数组的总长度为500K - 100K

我肯定知道数组中存在的上述哈希基本上都不是MongoDB中的文件大小为16MB

所以每当我表演这个

RockBand.collection.insert(mass_data)

为什么它保持给我16MB限制错误,因为上面的状态我很确定数组中没有上述文件(即散列)没有重量是16MB个人。

那么为什么数据大小的错误超过了文档

它是否应该考虑整个数组作为单个文档

数组的每个哈希作为单个文档

任何人都可以建议

顺便说一句,我在MongoDB rub​​y​​驱动程序上使用Mongoid Driver连接到MongoDB

1 个答案:

答案 0 :(得分:0)

当您插入这样的数组时,您将整个数组作为单个文档插入。您必须像使用单独的插入命令一样在数组中插入每个对象。

相关问题