-
Notifications
You must be signed in to change notification settings - Fork 0
Quick Start
Angel Alvarado edited this page Nov 20, 2015
·
2 revisions
JSQL allows you to dynamically build queries to run against a collection of objects in an active record like syntax.
Data used for the following examples.
var data = [
{ "name": "Portia Zamora", "age": 48, "city": "Morkhoven" },
{ "name": "Rahim Wiggins", "age": 42, "city": "Orlando" },
{ "name": "Rana Murphy", "age": 48, "city": "Armstrong" },
{ "name": "Raven Jordan", "age": 32, "city": "Atlanta" },
{ "name": "Jocelyn Weeks", "age": 28, "city": "Sant'Onofrio" },
{ "name": "Ava Stark", "age": 60, "city": "Colombo" },
{ "name": "Noelani Gibson", "age": 54, "city": "Pittsburgh" },
{ "name": "Gisela Sykes", "age": 61, "city": "Caramanico Terme" },
{ "name": "Maggy Skinner", "age": 62, "city": "Chandigarh" },
{ "name": "Jordan Holden", "age": 40, "city": "Holman" },
{ "name": "Shoshana Fox", "age": 62, "city": "Ludwigsfelde" },
{ "name": "Jack Gilbert", "age": 55, "city": "Parkland County" }
];Once you have the data you can create a new JSQL object.
var people = new JSQL(data);Search for people who are 60 years old
people
.select()
.where('age', '60')
.get();
/* result
{ "name": "Ava Stark", "age": 60, "city": "Colombo" }Search for people where their name starts with 'jo' and have an age greater than 30.
people
.select()
.startsWith('name', 'jo')
.gt('age', 30)
.get();
/* result
{ "name": "Jordan Holden", "age": 40, "city": "Holman" }Search for name, age sort first by age then by name descending.
people
.select('name', 'age')
.sortBy({'age': 'asc', 'name': 'desc'})
.get();
/* result
[
{ "name": "Jocelyn Weeks", "age": 28 },
{ "name": "Raven Jordan", "age": 32 },
{ "name": "Jordan Holden", "age": 40 },
{ "name": "Rahim Wiggins", "age": 42 },
{ "name": "Rana Murphy", "age": 48 },
{ "name": "Portia Zamora", "age": 48 },
{ "name": "Noelani Gibson", "age": 54 },
{ "name": "Jack Gilbert", "age": 55 },
{ "name": "Ava Stark", "age": 60 },
{ "name": "Gisela Sykes", "age": 61 },
{ "name": "Shoshana Fox", "age": 62 },
{ "name": "Maggy Skinner", "age": 62 }
]Search for all unique ages that are less than or equal to 55 sort by age.
people.select();
people.lte('age', 55)
people.sortBy('age', 'asc');
people.distinct('age');
people.get();
/* result
[28, 32, 40, 42, 48, 54, 55]
*/