Я пытаюсь вставить 500 000 записей в коллекцию mongodb. Эти значения сохраняются в csv и анализируются, а затем сохраняются в массиве. И используя рекурсивные функции, вставляющие записи одну за другой, и когда одна запись вставляется снова, вызывается та же самая функция. Этот процесс работает для 200 000 записей, но когда размер записи увеличивается более чем на 200 000, он вызывает кучу нехватки памяти (трассировка стека JS).
Ниже приведена рекурсивная функция, которую я использую
function insertMongoSingle(fileRows, x, total){
if(x < total){
let item = fileRows.shift();
let record = new Record({i:item}, false);
record.save(function(error, contact){
if(error){
console.log(error);
x++;
insertMongoSingle(fileRows, x ,total);
}else{
x++;
insertMongoSingle(fileRows, x, total);
}
});
}else{
console.log('completed');
}
}
где x - количество, fileRows - общее количество записей в массиве объектов, а total - длина fileRows
.