我正在尝试在cassandra中获取最后一行,但我得到了undefined
以下是代码查找insert
的方式:
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ contactPoints: ['h1', 'h2'], keyspace: 'ks1' });
let query = "INSERT INTO users (id, name, email ) values (uuid(), ?, ?)";
client.execute(query, [ 'badis', 'badis@badis.com' ])
.then(result => console.log('User with id %s', result.rows[0].id));
答案 0 :(得分:5)
请记住,您正在处理NoSQL
(“非关系”)
如果我在这张桌子上跑
SELECT * FROM users LIMIT 1
,我的 结果集将包含单行。那一行就是那一行 包含用户名的最低哈希值(我的分区键), 因为这就是Cassandra如何在集群中存储数据。我会 无法知道它是否是最后添加的,所以这个 对你来说不会非常有用。
The workings are very different from those that you might be used to in MySQL
.
如果您的系统需要获取最后插入的行的信息,那么在插入之前您必须知道它。
const Uuid = require('cassandra-driver').types.Uuid;
const id = Uuid.random();
然后,您可以使用id
作为准备好的插入查询的另一个值
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ contactPoints: ['h1', 'h2'], keyspace: 'ks1' });
let query = "INSERT INTO users (id, name, email ) values (?, ?, ?)";
client.execute(query, [id, 'badis', 'badis@badis.com' ])
.then(result => console.log('User with id %s', id));