"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>, 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; }); });