0
我在做這個項目,我不得不對MongoDB的數據庫中執行大量插入MongoDB的上collection.insert和數據大小的困境
我明白,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的極限誤差狀態上面我敢肯定,沒有任何上述文件persent的陣列中(即哈希)重不爲16MB IND的個人。
那麼爲什麼數據大小的誤差超過爲一個文件
難道是考慮到整個數組作爲單一的文件時,它應該被考慮
陣列的每個哈希作爲一個單獨的文件
任何人都可以提出
順便說一下我使用的有關MongoDB Ruby驅動程序的頂部Mongoid驅動程序連接到MongoDB的
所以你的意思插入一個數組會告訴mongo將整個數組視爲單個文檔,那麼如何實現大容量插入然後 – Ratatouille
剛剛在http://stackoverflow.com/questions/3772378/batch上找到了一個鏈接-insert-update-using-mongoid在這裏,沒有什麼不同的是提及我爲大規模插入做什麼 – Ratatouille
我不知道足夠紅寶石我也不能全面瞭解你的源代碼,但它可能是你實際存儲一個字符串而不是紅寶石哈希?你是否嘗試過批次,讓我們說5個條目,而不是整個批次。也許在mongoid中有一些問題,它仍然有16mb的批量限制。 – philnate