MongoDB о дилемме collection.insert и размере данных
Я работаю над этим проектом, где я должен выполнить массовую вставку в базу данных 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, не имеет размер 16 МБ.
Так что всякий раз, когда я исполнитель это
RockBand.collection.insert(mass_data)
Почему это дает мне 16MB предельную ошибку, как указано выше. Я совершенно уверен, что ни один из вышеупомянутых документов, представленных в массиве (то есть хэш), не весит, имеет 16MB отдельного человека.
тогда почему ошибка размера данных превышает документ
Рассматривает ли он весь массив как один документ, когда должен был бы рассмотреть
каждый хэш массива как отдельный документ
Кто-нибудь может предложить
Кстати, я использую драйвер Mongoid поверх Ruby драйвера MongoDB для подключения к MongoDB
1 ответ
Когда вы вставляете массив таким образом, вы вставляете весь массив как один документ. Вы должны вставить каждый объект в массив как с отдельной командой вставки.