node-query/API.md

20 KiB

NodeQuery

Class for connection management

Parameters

  • config object connection parameters

constructor

Constructor

Parameters

  • config object connection parameters

Examples

let nodeQuery = require('ci-node-query')({
	driver: 'mysql',
	connection: {
		host: 'localhost',
		user: 'root',
		password: '',
		database: 'mysql'
	}
});
let nodeQuery = require('ci-node-query')({
	driver: 'sqlite',
	connection: ':memory:'
});

getQuery

Return an existing query builder instance

Returns QueryBuilder The Query Builder object

QueryBuilder

Extends QueryBuilderBase

Main object that builds SQL queries.

Parameters

  • Driver Driver The syntax driver for the database
  • Adapter Adapter The database module adapter for running queries

query

Run an arbitrary sql query. Run as a prepared statement.

Parameters

  • sql string The sql to execute
  • params [Array] The query parameters

Returns Promise Promise with result of query

resetQuery

Reset the object state for a new query

Returns void

truncate

Empties the selected database table

Parameters

  • table string the name of the table to truncate

Returns (void | Promise) Returns a promise if no callback is supplied

end

Closes the database connection for the current adapter

Returns void

select

Specify rows to select in the query

Parameters

  • fields (String | Array) The fields to select from the current table

Examples

query.select('foo, bar'); // Select multiple fields with a string
query.select(['foo', 'bar']); // Select multiple fileds with an array

Returns QueryBuilder The Query Builder object, for chaining

from

Specify the database table to select from

Parameters

  • tableName String The table to use for the current query

Examples

query.from('tableName');
query.from('tableName t'); // Select the table with an alias

Returns QueryBuilder The Query Builder object, for chaining

like

Add a 'like/ and like' clause to the query

Parameters

  • field String The name of the field to compare to
  • val String The value to compare to
  • pos [String] The placement of the wildcard character(s): before, after, or both (optional, default both)

Returns QueryBuilder The Query Builder object, for chaining

notLike

Add a 'not like/ and not like' clause to the query

Parameters

  • field String The name of the field to compare to
  • val String The value to compare to
  • pos [String] The placement of the wildcard character(s): before, after, or both (optional, default both)

Returns QueryBuilder The Query Builder object, for chaining

orLike

Add an 'or like' clause to the query

Parameters

  • field String The name of the field to compare to
  • val String The value to compare to
  • pos [String] The placement of the wildcard character(s): before, after, or both (optional, default both)

Returns QueryBuilder The Query Builder object, for chaining

orNotLike

Add an 'or not like' clause to the query

Parameters

  • field String The name of the field to compare to
  • val String The value to compare to
  • pos [String] The placement of the wildcard character(s): before, after, or both (optional, default both)

Returns QueryBuilder The Query Builder object, for chaining

having

Add a 'having' clause

Parameters

  • key (String | Object) The name of the field and the comparision operator, or an object
  • val [(String | Number)] The value to compare if the value of key is a string

Returns QueryBuilder The Query Builder object, for chaining

orHaving

Add an 'or having' clause

Parameters

  • key (String | Object) The name of the field and the comparision operator, or an object
  • val [(String | Number)] The value to compare if the value of key is a string

Returns QueryBuilder The Query Builder object, for chaining

where

Set a 'where' clause

Parameters

  • key (String | Object) The name of the field and the comparision operator, or an object
  • val [(String | Number)] The value to compare if the value of key is a string

Returns QueryBuilder The Query Builder object, for chaining

orWhere

Set a 'or where' clause

Parameters

  • key (String | Object) The name of the field and the comparision operator, or an object
  • val [(String | Number)] The value to compare if the value of key is a string

Returns QueryBuilder The Query Builder object, for chaining

whereIsNull

Select a field that is Null

Parameters

  • field String The name of the field that has a NULL value

Returns QueryBuilder The Query Builder object, for chaining

whereIsNotNull

Specify that a field IS NOT NULL

Parameters

  • field String The name so the field that is not to be null

Returns QueryBuilder The Query Builder object, for chaining

orWhereIsNull

Field is null prefixed with 'OR'

Parameters

  • field String The name of the field

Returns QueryBuilder The Query Builder object, for chaining

orWhereIsNotNull

Field is not null prefixed with 'OR'

Parameters

  • field String The name of the field

Returns QueryBuilder The Query Builder object, for chaining

whereIn

Set a 'where in' clause

Parameters

  • key String the field to search
  • values Array the array of items to search in

Returns QueryBuilder The Query Builder object, for chaining

orWhereIn

Set a 'or where in' clause

Parameters

  • key String the field to search
  • values Array the array of items to search in

Returns QueryBuilder The Query Builder object, for chaining

whereNotIn

Set a 'where not in' clause

Parameters

  • key String the field to search
  • values Array the array of items to search in

Returns QueryBuilder The Query Builder object, for chaining

orWhereNotIn

Set a 'or where not in' clause

Parameters

  • key String the field to search
  • values Array the array of items to search in

Returns QueryBuilder The Query Builder object, for chaining

set

Set values for insertion or updating

Parameters

  • key (String | Object) The key or object to use
  • val [String] The value if using a scalar key

Examples

query.set('foo', 'bar'); // Set a key, value pair
query.set({foo:'bar'}); // Set with an object

Returns QueryBuilder The Query Builder object, for chaining

join

Add a join clause to the query

Parameters

  • table String The table you are joining
  • cond String The join condition.
  • type [String] The type of join, which defaults to inner (optional, default 'inner')

Returns QueryBuilder The Query Builder object, for chaining

groupBy

Group the results by the selected field(s)

Parameters

  • field (String | Array) The name of the field to group by

Returns QueryBuilder The Query Builder object, for chaining

orderBy

Order the results by the selected field(s)

Parameters

  • field String The field(s) to order by
  • type [String] The order direction, ASC or DESC (optional, default 'ASC')

Returns QueryBuilder The Query Builder object, for chaining

limit

Put a limit on the query

Parameters

  • limit Number The maximum number of rows to fetch
  • offset [Number] The row number to start from

Returns QueryBuilder The Query Builder object, for chaining

groupStart

Adds an open paren to the current query for logical grouping

Returns QueryBuilder The Query Builder object, for chaining

orGroupStart

Adds an open paren to the current query for logical grouping, prefixed with 'OR'

Returns QueryBuilder The Query Builder object, for chaining

orNotGroupStart

Adds an open paren to the current query for logical grouping, prefixed with 'OR NOT'

Returns QueryBuilder The Query Builder object, for chaining

groupEnd

Ends a logical grouping started with one of the groupStart methods

Returns QueryBuilder The Query Builder object, for chaining

get

Get the results of the compiled query

Parameters

  • table [String] The table to select from
  • limit [Number] A limit for the query
  • offset [Number] An offset for the query

Examples

query.get('table_name').then(promiseCallback); // Get all the rows in the table
query.get('table_name', 5); // Get 5 rows from the table
query.get(); // Get the results of a query generated with other methods

Returns Promise<Result> Promise containing the result of the query

insert

Run the generated insert query

Parameters

  • table String The table to insert into
  • data [Object] Data to insert, if not already added with the 'set' method

Returns Promise<Result> Promise containing the result of the query

insertBatch

Insert multiple sets of rows at a time

Parameters

  • table String The table to insert into
  • data Array The array of objects containing data rows to insert

Examples

query.insertBatch('foo',[{id:1,val:'bar'},{id:2,val:'baz'}])
.then(promiseCallback);

Returns Promise<Result> Promise containing the result of the query

update

Run the generated update query

Parameters

  • table String The table to insert into
  • data [Object] Data to insert, if not already added with the 'set' method

Returns Promise<Result> Promise containing the result of the query

delete

Run the generated delete query

Parameters

  • table String The table to insert into
  • where [Object] Where clause for delete statement

Returns Promise<Result> Promise containing the result of the query

getCompiledSelect

Return generated select query SQL

Parameters

  • table [String] the name of the table to retrieve from
  • reset [Boolean] Whether to reset the query builder so another query can be built (optional, default true)

Returns String The compiled sql statement

getCompiledInsert

Return generated insert query SQL

Parameters

  • table String the name of the table to insert into
  • reset [Boolean] Whether to reset the query builder so another query can be built (optional, default true)

Returns String The compiled sql statement

getCompiledUpdate

Return generated update query SQL

Parameters

  • table String the name of the table to update
  • reset [Boolean] Whether to reset the query builder so another query can be built (optional, default true)

Returns String The compiled sql statement

getCompiledDelete

Return generated delete query SQL

Parameters

  • table String the name of the table to delete from
  • reset [Boolean] Whether to reset the query builder so another query can be built (optional, default true)

Returns String The compiled sql statement

Result

Query result object

Parameters

  • rows Array the data rows of the result
  • columns Array the column names in the result

rowCount

Get the number of rows returned by the query

Returns Number the number of rows in the result

columnCount

Get the number of columns returned by the query

Returns Number the number of columns in the result