kinvey-query-constrainer
v1.2.6
Published
apply one or more constraints to a Kinvey query with a plain-object configuration
Downloads
7
Readme
kinvey-query-constrainer
Applies one or more constraints to a Kinvey query with a plain-object configuration.
Description:
Calls one or more query constraint methods on a query with arbitrary number of arguments for each method. This method is useful when, for example, building a complex query configuration to pass to another function that may modify the configuration further and then generate the actual query. Mutates the 'query' parameter because it calls constraint methods on it. Returns the query, so you can chain this call.
Example:
const query = new modules.Query()
const constraints = {
equalTo: ['nameFirst', 'Charles'],
limit: 10, // If there is only one argument, does not need to be in an array
fields: [ ['name', 'address', 'url'] ] // If any argument for a constraint is an array, it must be passed to constrainQuery within another array to indicate that its array items are not individual arguments.
}
// which is equivalent to:
const query = new modules.Query()
query.equalTo('nameFirst', 'Charles')
query.limit(10)
query.fields('name', 'address', 'url')
In the above example, if you want to make sure nameFirst is Charles and nameLast is Koehl, the equalTo value would be [ ['nameFirst', 'Charles'], ['nameLast', 'Koehl'] ]
In the above example, if you want to make sure nameFirst is Charles OR Melanie OR Caden, the equalTo value would be [ ['nameFirst', 'Charles'], ['nameFirst', 'Melanie'], ['nameFirst', 'Caden'] ] This works only with these operators: 'equalTo', 'notEqualTo', 'size', 'matches'
Keys for constraints object:
- eq: 'equalTo', // matches if the field is = the supplied value.
- gt: 'greaterThan', // matches if the field is > the supplied value.
- gte: 'greaterThanOrEqualTo', // matches if the field is >= the supplied value.
- lt: 'lessThan', // matches if the field is < the supplied value.
- lte: 'lessThanOrEqualTo', // matches if the field is <= the supplied value.
- neq: 'notEqualTo', // matches if the field is != the supplied value.
- ex: 'exists', // matches if the field exists.
- mod: 'mod', // matches if the field modulo the supplied divisor (second argument) has the supplied remainder (third argument).
- rgx: 'matches', // matches if the field matches the supplied regular expression.
- asc: 'ascending', // sort ascending by the field named by the supplied value
- desc: 'descending', // sort descending by the field named by the supplied value,
- limit: 'limit',
- skip: 'skip',
- fields: 'fields'