https://github.com/devongovett/jquery-db
A JavaScript data store queried by jQuery-like selectors
https://github.com/devongovett/jquery-db
Last synced: 4 months ago
JSON representation
A JavaScript data store queried by jQuery-like selectors
- Host: GitHub
- URL: https://github.com/devongovett/jquery-db
- Owner: devongovett
- Created: 2010-06-17T00:17:25.000Z (about 16 years ago)
- Default Branch: master
- Last Pushed: 2010-06-17T02:19:15.000Z (about 16 years ago)
- Last Synced: 2025-11-18T04:03:47.539Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 82 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
jQuery DB - A JavaScript data store queried by jQuery-like selectors
By Devon Govett
Licence: Do whatever you want, just fork and hack away!
/******************
** DOCUMENTATION
*****************/
Step 1: Create a data store
var db = new DataStore("awesome");
Step 2: Create some records and add them to the database
db.create({
foo: "bar",
hello: "world"
}).appendTo("awesome");
Step 3: Find some records
var records = db.get("awesome[foo=bar]")
Step 4: Do stuff with the records
records.update("hello", "coder");
Step 5: Bind an event to be notified when data changes
db.bind("awesome[hello!=coder]", function(event) {
//do stuff (see Mutation Events, below, for details on the event object)
});
/**************
** SELECTORS
*************/
Table selector
db.get("tablename") //get all records in table
Attribute selector
db.get("tablename[attr=value]") //get records in tablename whose attribute "attr" equals "value"
db.get("tablename[attr!=value]") //get records in tablename whose attribute "attr" does not equal "value"
db.get("tablename[attr^=value]") //get records in tablename whose attribute "attr" starts with "value"
db.get("tablename[attr$=value]") //get records in tablename whose attribute "attr" ends with "value"
db.get("tablename[attr*=value]") //get records in tablename whose attribute "attr" contains "value"
Filter selectors
db.get("tablename:first") //get the first record in tablename
db.get("tablename:last") //get the last record in tablename
db.get("tablename:even") //get all of the even indexed records in tablename
db.get("tablename:odd") //get all of the odd indexed records in tablename
db.get("tablename:eq(5)") //get the 5th record in tablename
db.get("tablename:gt(5)") //get all of the the records with an index greater than 5 in tablename
db.get("tablename:lt(5)") //get all of the the records with an index less than 5 in tablename
/*************************
** RESULT SET OPERATIONS
************************/
Loop through each record in the set
set.each(function(i) {
//do stuff
});
Get a specific record
set[index] //get the record at index from set
set.eq(index) //ditto
Filter the set
set.filter(":odd") //filter the set by a string selector
set.filter(function(i) { return i % 2; }) //filter the set by a function
Get a specific property from all records in the set
set.map("name") //return an array of all name properties in the set
set.map(function() { return this.name; }) //ditto
Update all records in the set
set.update(prop, val) //update all records in the set, setting prop to val
set.update({ foo: "bar", hello: "world" }) //update set with all changes in the hash
Remove all records from the set
set.remove()
Add records to a table
set.appendTo(tablename) //append the records in the set to tablename
set.prependTo(tablename) //prepend the records in the set to tablename
set.insertInto(tablename, index);
/********************
** MUTATION EVENTS
*******************/
Mutation events (received from db.bind, see above) have the following properties
type: one of the mutation types (append, prepend, insert, update, or remove)
index: an array of modified indexes for insert update and remove events
data: an array of objects being inserted for append, prepend and insert events