我尝试使用一个数组将多个值插入到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);
我仍然得到相同的结果。
https://stackoverflow.com/questions/50652437
复制相似问题