项目作者: ridi

项目描述 :
Cassandra CQL Builder
高级语言: JavaScript
项目地址: git://github.com/ridi/cql-builder.git
创建时间: 2017-03-31T09:59:09Z
项目社区:https://github.com/ridi/cql-builder

开源协议:MIT License

下载


cql-builder

@ridi/cql-builder"">npm
Build Status
Greenkeeper badge

Simple Cassandra CQL Builder in Javascript

Installation

  1. $ npm install --save @ridi/cql-builder

Usage

  1. import { Insert, Select, Update, Delete, CqlBuilderError } from '@ridi/cql-builder';
  2. const result = Select().table('test_table', 'test_keyspace').build();
  3. // Returns...
  4. // result.query = 'SELECT * FROM test_keyspace.test_table'
  5. // result.params = []

Insert

Generate insert query

  1. const cql = Insert()
  2. .table('test_table', 'test_keyspace')
  3. .value('column1', 1)
  4. .option('TTL', 86400)
  5. .option('TIMESTAMP', 12345678)
  6. .build();
  7. // Returns...
  8. // cql.query = 'INSERT INTO test_keyspace.test_table (column1) VALUES (?) USING TTL ? AND TIMESTAMP ?'
  9. // cql.params = [1, 86400, 12345678]

Methods

  • InsertBuilder.table(table, keyspace)
  • InsertBuilder.value(field, value)
  • InsertBuilder.option(option, value)

Select

Generate select query

  1. const cql = Select()
  2. .table('test_table', 'test_keyspace')
  3. .field(['column1', 'column2'])
  4. .field('column3')
  5. .where('key1 = ?', 1000)
  6. .where('key2 > ?', 2000)
  7. .limit(5000)
  8. .order('key1 DESC')
  9. .where('key3 IN (?, ?)', 3000, 4000)
  10. .option('TTL', 86400)
  11. .filtering()
  12. .build();
  13. // Returns...
  14. // cql.query = 'SELECT column1, column2, column3 FROM test_keyspace.test_table WHERE key1 = ? AND key2 > ? AND key3 IN (?, ?) ORDER BY key1 DESC LIMIT ? ALLOW FILTERING'
  15. // cql.params = [1000, 2000, 3000, 4000, 5000]

Methods

  • SelectBuilder.table(table, keyspace)
  • SelectBuilder.field(field)
  • SelectBuilder.where(where, values)
  • SelectBuilder.order(order)
  • SelectBuilder.limit(limit)
  • SelectBuilder.filtering(filtering = true)

Update

Generate update query

  1. const cql = Update()
  2. .table('test_table')
  3. .set('column1', 1)
  4. .where('key1 = ?', 'a')
  5. .option('TTL', 3000)
  6. .upsert(true)
  7. .build();
  8. // Returns...
  9. // cql.query = 'UPDATE test_table USING TTL ? SET column1 = ? WHERE key1 = ?'
  10. // cql.params = [3000, 1, 'a']

Methods

  • UpdateBuilder.table(table, keyspace)
  • UpdateBuilder.set(field, value)
  • UpdateBuilder.where(where, values)
  • UpdateBuilder.upsert(upsert)
  • UpdateBuilder.option(option, value)

Delete

Generate delete query

  1. const cql = Delete()
  2. .table('test_table')
  3. .where('key1 = ?', 'a')
  4. .field(['column1', 'column2'])
  5. .option('TIMESTAMP', 12345678)
  6. .build();
  7. // Returns...
  8. // cql.query = 'DELETE column1, column2 FROM test_table USING TIMESTAMP ? WHERE key1 = ?'
  9. // cql.params = [12345678, 'a']

Methods

  • DeleteBuilder.table(table, keyspace)
  • DeleteBuilder.field(field)
  • DeleteBuilder.where(where, values)
  • DeleteBuilder.option(option, value)

Development

  1. $ git clone git@github.com:ridi/cql-builder.git
  2. $ cd cql-builder
  3. $ npm install

Build

Webpack build using Babel (Not required in development.)

  1. $ npm run build

Test

Tests using Jest

  1. $ npm test