blob: 9925ea232659e8037a9144d571f983474287cb54 [file] [log] [blame]
"use strict";
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ contactPoints: ['127.0.0.1'], localDataCenter: 'dc1' });
/**
* Creates a table with a Tuple type, inserts a row and selects a row.
*/
client.connect()
.then(function () {
const query = "CREATE KEYSPACE IF NOT EXISTS examples WITH replication =" +
"{'class': 'SimpleStrategy', 'replication_factor': '1' }";
return client.execute(query);
})
.then(function () {
const query = "CREATE TABLE IF NOT EXISTS examples.tuple_forex " +
"(name text, time timeuuid, currencies frozen<tuple<text, text>>, value decimal, PRIMARY KEY (name, time))";
return client.execute(query);
})
.then(function () {
console.log('Inserting');
// Create a new instance of a Tuple
const currencies = new cassandra.types.Tuple('USD', 'EUR');
const query = 'INSERT INTO examples.tuple_forex (name, time, currencies, value) VALUES (?, ?, ?, ?)';
const params = [ 'market1', cassandra.types.TimeUuid.now(), currencies, new cassandra.types.BigDecimal(11, 1) ];
return client.execute(query, params, { prepare: true});
})
.then(function () {
const query = 'SELECT name, time, currencies, value FROM examples.tuple_forex where name = ?';
return client.execute(query, ['market1'], { prepare: true });
})
.then(function (result) {
const row = result.first();
console.log('%s to %s: %s', row['currencies'].get(0), row['currencies'].get(1), row['value']);
return client.shutdown();
})
.catch(function (err) {
console.error('There was an error', err);
return client.shutdown().then(() => { throw err; });
});