Show:
constructor
(
  • store
  • options
)
public

Inherited from Base but overwritten in src/classes/adapter.js:15

Sets up the knex query builder instance

Parameters:

  • store Store
    • Instance of Ash.Store
  • options Mixed
    • knex database options {Object} or {String}
createRecord
(
  • Model
  • data
)
Promise
public

Creates a new record for a given model using supplied attributes hash

Parameters:

Returns:

deleteRecord
(
  • Model
  • id
)
Promise
public

Delete a Model by given id

Parameters:

Returns:

fieldsForModel
(
  • Model
)
Array
private

Returns a fields array of Model attribute names

Parameters:

  • Model Model
    • Model class

Returns:

Array:
  • array of model attribute names
findAll
(
  • Model
)
Promise
public

Finds all records for a given model. Use query when you need more control over what records are returned.

Parameters:

Returns:

findRecord
(
  • Model
  • id
)
Promise
public

Retrieves a single record for the given model by given id

Parameters:

Returns:

include
(
  • Model
  • query
  • includeString
  • fieldOptions
)
Promise
private

Parameters:

Returns:

limitFieldSet
(
  • Model
  • attributes
  • options
)
Array
private

Parameters:

Returns:

Array:

attributes

paginate
(
  • query
  • options
)
Promise
private

Parameters:

Returns:

Promise:
  • knex query promise object
query
(
  • Model
  • options
)
Promise
public

Finds records of a given model using options.

Options is an {Object} with the following properties:

include - used to include related model records

adapter.query(Post, {include: 'comments,author'})
  

fields - used to specify desired attribute fields to be returned in result objects

adapter.query(Post, {fields: {posts: 'title,description'}})
  

To restrict fields from included relationship models

adapter.query(Post, {fields: {posts: 'title', comments: 'comment'}})
  

sort - used to sort results by its attributes

adapter.query(Post, {sort: 'title'})
  

To specify sorting by multiple columns, separate by comma

adapter.query(Post, {sort: 'title,description'})
  

Sort is ascending by default, use "-" to indicate descending

adapter.query(Post, {sort: '-title'})
  

page - used to paginate results

adapter.query(Post, {page: {number: 1, size: 20}})
  

filter - used to refine desired results by specified criteria

adapter.query(Post, {filter: {title: 'my title'}})
  

filter also supports a number of operators prefixed with a $ character

  • $or - SQL OR
  • $eq - SQL =
  • $gt - SQL >
  • $gte - SQL >=
  • $lt - SQL <
  • $lte - SQL <=
  • $ne - SQL !=
  • $not - SQL NOT
  • $between - SQL BETWEEN
  • $notbetween - SQL NOT BETWEEN
  • $in - SQL IN
  • $notin SQL NOT IN
  • $like SQL LIKE
  • $notlike SQL NOT LIKE
  • $ilike - SQL NOT ILIKE
  • $overlap - SQL &&
  • $contains - SQL @>
  • $contained - SQL <@
adapter.query(Post, {filter: {title: {$like: '%my title%'}}})
  

$or is a slightly special case. It takes an array of objects to 'Or' together

adapter.query(Post, {filter: {
    $or: [
      {id: {$lt: 10}},
      {id: {$in: [20, 21, 22]}}
    ]
  })
  

Parameters:

Returns:

queryRecord
(
  • Model
  • options
)
Promise
public

Similar to query except that only a single record is returned

Parameters:

Returns:

sort
(
  • query
  • sortString
)
Promise
private

Parameters:

Returns:

Promise:
  • knex query promise object
updateRecord
(
  • Model
  • id
  • data
)
Promise
public

Updates a record for a given model with given id using a supplied attributes hash

Parameters:

Returns: