swint-query
MySQL query generator for Swint
Warning: This is not the final draft yet, so do not use this until its official version is launched
Installation
$ npm install --save swint-query
Manager
- Overall manager of ORM's
- Usage
var manager = swintQuery;
Structure
- Defining the model's structure
- Usage
var defs = name: 'foo' engine: 'MySQL' table: 'foos' schema = field: 'bars' type: 'RelN:M' related: 'bar' joinTable: 'foos_bars' myKey: 'foo_id' relKey: 'bar_id' field: 'bazs' type: 'Rel1:N' related: 'baz' joinTable: 'bazs' myKey: 'foo_id' field: 'qux' type: 'RelN:1' related: 'qux' relKey: 'qux_id' ; module { defsdb = managermySqlConn; return swintQuery;};
Model
-
Methods
-
.query(query, callback)
- Executes query
query
:String
, the query to be executedcallback
:Function
-
.query(preparedQuery, params, callback)
- Executes prepared query
preparedQuery
:String
, the query to be executedparams
:Array
callback
:Function
-
.save(data, callback)
- Insert data if the data doesn't have
id
, or update data if it has. data
:Object
orArray
, If array, it must be the array of objects to be savedcallback
:Function
- Insert data if the data doesn't have
-
.fetch(condition, option, callback)
condition
:Object
, the key is the name of fieldoption
:Object
target
:Array
, the list of fields to be fetched, can be*
orjoinedModel.*
.join
:Array
, the list of the names of models to be joinedorder
:String
orArray
, the name of the field to be sorted, can beArray
.orderFlag
:Boolean
orArray
, the sorting orderlimit
:Number
, the number of rows to fetch
-
.queryPromise(query)
- Executes query
query
:String
, the query to be executed
-
.queryPromise(preparedQuery, params)
- Executes prepared query
preparedQuery
:String
, the query to be executedparams
:Array
-
.savePromise(data)
- Insert data if the data doesn't have
id
, or update data if it has. data
:Object
orArray
, If array, it must be the array of objects to be saved
- Insert data if the data doesn't have
-
.fetchPromise(condition, option)
condition
:Object
, the key is the name of fieldoption
:Object
target
:Array
, the list of fields to be fetched, can be*
orjoinedModel.*
.join
:Array
, the list of the names of models to be joinedorder
:String
orArray
, the name of the field to be sorted, can beArray
.orderFlag
:Boolean
orArray
, the sorting orderlimit
:Number
, the number of rows to fetch
-
-
Usage
modelsfoo;
Operator
- Various operators
eq
: Equal,{ fieldName: eq(42) }
ne
: Not equal,{ fieldName: ne(42) }
gt
: Greater than,{ fieldName: gt(42) }
gte
: Greater than or equal,{ fieldName: gte(42) }
lt
: Less than,{ fieldName: lt(42) }
lte
: Less than or equal,{ fieldName: lte(42) }
btn
: Between,{ fieldName: btn(42, 84) }
nbtn
: Not between,{ fieldName: nbtn(42, 84) }
isNull
: Is null,{ fieldName: isNull() }
notNull
: Not null,{ fieldName: notNull() }