使用cassandra在typescript中使用批处理查询,在Nodejs中只插入一行

yyyllmsg  于 2023-04-11  发布在  Node.js
关注(0)|答案(1)|浏览(107)

用这种方式

const client = new cassandra.Client({ contactPoints:['127.0.0.1'],localDataCenter:'eu-west-3',keyspace:'测试',

});

const query1 = 'INSERT INTO user_track (key, text, date) VALUES (?, ?, ?)';
const query2 = 'INSERT INTO user_track (key, text, date) VALUES (?, ?, ?)';
const queries = [
   { query: query1, params: ['hendrix1', 'Changed email1', new Date()]},
   { query: query2, params: ['hendrix2', 'Changed email2', new Date()] } 
];
// Promise-based call
client.batch(queries, { prepare: true })
  .then(function() {
    // All queries have been executed successfully
  })
  .catch(function(err) {
    // None of the changes have been applied
  });

只插入一行..

我的期望是插入所有行。

y0u0uwnf

y0u0uwnf1#

好的,我很想知道底层表user_track是什么样子的。
根据你所描述的,我做了一个npm install cassandra-driver,在本地启动Cassandra,并像这样创建了我的user_track表,用key作为我的PRIMARY KEY

CREATE TABLE user_track (
    key TEXT PRIMARY KEY,
    text TEXT,
    date DATE);

然后我运行了你的代码,我有两行:

aaron@cqlsh:stackoverflow> SELECT * FROm user_track ;

 key      | date       | text
----------+------------+----------------
 hendrix1 | 2023-04-10 | Changed email1
 hendrix2 | 2023-04-10 | Changed email2

(2 rows)

这是我的Git repo,如果你想看看的话:https://github.com/aar0np/nodejsCassandraTest/tree/main
所以从代码的Angular 看,一切都是正确的。也许可以重新验证一下你使用的是最新版本的Nodejs cassandra-driver?

相关问题