Я пытаюсь вставить несколько значений в базу данных nosql cassandra, используя массив, но когда я использую приведенный ниже код, вместо добавления строки для каждого из значений, хранящихся в foo5
, заканчивается только добавление двух строк,Две добавленные строки содержат одинаковые значения в col5
и col3
var insert2 = "INSERT INTO content (col, col2, col3, col4, col5) VALUES (?, ?, ?, ?, ?);"
for(var i = 0; i < foo5.length; i++) {
client.execute(insert2, [foo, foo2, foo3, foo4, foo5[i]], {prepare : true}, function(err, result) {
if(err) throw err;
});
}
, например, вот как выглядит результат (col
является первичным ключом):
col | col2 | col3 | col4 | col5
---------+---------+-----------+--------+--------
8909265 | text | 8759 | 5332 | 7480
1769288 | text | 8759 | 5332 | 7480
Я хочу добавить строку для каждого отдельного значения в массиве foo5
.Это ожидаемый результат.Как я могу добиться этого:
col | col2 | col3 | col4 | col5
---------+---------+-----------+--------+--------
8909265 | text | 8759 | 5332 | 1234
1769288 | text | 8759 | 5332 | 5678
3254786 | text | 8759 | 5332 | 9101112
4357234 | text | 8759 | 5332 | 1314151617
при условии foo5 = {1234, 5678, 9101112, 1314151617};
ОБНОВЛЕНИЕ:
после добавления рекурсивной функции, как предложено someRandomSerbianGuy этокак выглядит мой код:
function recursion(i, counter) {
var insert2 = "INSERT INTO content (col, col2, col3, col4, col5) VALUES (?, ?, ?, ?, ?);"
if(counter == i) {
return;
} else {
client.execute(insert2, [foo, foo2, foo3, foo4, foo5[i]], {prepare : true}, function(err, result) {
if(err) throw err;
recursion(++i, counter);
});
}
}
recursion(0, foo5.length);
Я все еще получаю те же результаты.