0

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

我知道 MongoDB 是一个文档数据库,每个文档的大小都有限制,如此处所示

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

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 驱动程序来连接到 MongoDB

4

1 回答 1

0

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

于 2012-10-09T07:31:50.660 回答