localDB.js Dokumentation
Das localDB.js Framework ist von mir entwickelt und bietet eine Reihe an Funktionen für eine offline Datenverarbeitung. Die Daten werden in dem localStorage gespeichert, da die meisten Browser diese Technologie unterstützen ist es ein guter Ersatz für Cookies. Das ganze Framework orientiert sich an die noSQL Datenbank MongoDB.
schema(String, Array)
Als erstes muss das Schema definiert werden. Die schema Methode erwartet den Collections Namen und die dazu gehörigen Felder.
localDB.schema("users", ["username", "email", "age"]);
add(String, Object)
Damit lassen sich Objekte in eine bestehende "Collection" speichern. Die add Methode erwartet zwei parameter den Collections Namen und ein Object.
localDB.add("users", {
username: "Max",
email: "max.mustermann@gmail.de",
age: 34
});
remove(String, Object)
Mit remove lassen sie bestimmte Objekte löschen. Die remove Methode erwartet 2 parameter Collectionsname und ein Queryobject. Siehe abfragen
localDB.remove('users', {is: {username: "max"}});
Empfohlen: jedes gespeicherte Objekt besitzt ein Index. Es ist besser die Methode removeByIndex zu verwenden. Es ist um einiges schneller.
localDB.removeByIndex('users', 123456789);
update(String, Object, Object)
Mit update lassen sich bestehend Objekte verändern. Diese Methode benötigt 3 parameter Collectionsname gefolgt von einem Queryobject(Siehe abfragen) und einem Modifier.
localDB.update('users', {is: {username: "max"}}, {set: {age: 35 } );
Empfohlen: Jedes gespeicherte Objekt besitzt ein Index. Es ist besser die Methode updateByIndex zu verwenden. Es ist um einiges schneller.
localDB.updateByIndex('users', 123456789);
Das Modifier Objekt bietet 3 Methoden an pull, push und set. das set wird für Zeichenketten und Nummern verwenden während pull und push für Arrays.
//Man hat ein Array mit folgenden Werten:
var arr = [33,34];
//Array um ein Feld zu erweitern
localDB.update('users', {is: {username: "max"}}, {push: {arr: 35}} );
// arr: [33, 34, 35]
//Array um ein bestimmtes Feld zu reduzieren
localDB.update('users', {is: {username: "max"}}, {pull: {arr: 34}} );
// arr: [33]
find(String, Object)
Die einzelne Objekte in einer Collection lassen sich auch suchen und finden indem man die Methode find() verwenden. Die find() Methode erwartet 2 parameter den Collectionsnamen und Queryobjekt.
localDB.find('users', {is: {username: 'max'}});
localDB.find('users', {get: {age: 30}});
//neben dem is Schlüsseloperator gibt es noch:
//{is: {}} gemäß "==="
//{not :{}} gemäß "!=="
//{gt :{}} gemäß ">"
//{gte :{}} gemäß ">="
//{lt :{}} gemäß "<="
//{lte :{}} gemäß "<="
//{has :{arr: 32}} sucht nach einem bestimmten Feld in einem Array
//Bei Möglichkeit immer das verwenden:
localDB.findByIndex('users', 123456789);
findAll(String)
Ich denke es erklärt sich von selbst.
Das Cursor Objekt
Das Cursor Objekt wird bei einer Suchanfrage zurückgegeben. Es beinhaltet folgende Methoden:
- count()
- fetch()
- limit()
- where()
localDB.find('users', {has: {group: 'admin'}}).count() //gibt Anzahl der gefunden Objekte.
localDB.find('users', {is: {username: 'max'}}).fetch() //sammelt alle Ergenisse in ein Array.
localDB.find('users', {get: {age: 18}}).limit(0, 10); //limitiert die Ausgabe auf 10. „Skip and Limit“
localDB.find('users', {get: {age: 18}}).where({not: {username: 'max'}}); //damit lassen sich die Ergebnisse verfeinern. Where() Methode liefert ebenfalls eine Cursor Object.
watch(String, Callback)
mit der watch() Methode lassen sie die Methoden add, update und remove überwachen. Die watch method erwartet 2 Parameter. Ein String und eine callback Funktion. Die Callback Funktion liefert ein Objekt und den Collectionsnamen. Diese Methode ist bestens für Live updates für den Server geeignet oder Template.
localDB.watch('add', function(obj, colname){
//
});
localDB.watch('remove', function(obj, colname){
//
});
localDB.watch('update', function(obj, colname){
//
});
empty(String)
Mit der empty() Methode lassen sie alle Objekte in der Collection löschen. Erwarten den Collectionsnamen als Parameter.
collections()
Liefert die gesamte Datenbank.