ground:db

v2.0.0-alpha.1Published 9 years ago

This package has not had recent updates. Please investigate it's current state before committing to using it in your project.

ground:db Build Status

GroundDB is a fast and thin layer providing Meteor offline database - Taking cloud data to the ground.

Features

This version of GroundDB is a caching only storage - meaning it does not support resuming of method calls/cross tab updates etc. But it's faster and async supporting local storages like:

  • localstorage
  • indexeddb
  • websql

* SQLite (on cordova)

It's using localforage with some minor modifications - hopefully we can use localForage via npm in the future

Usage

A pure offline collection

1  foo = new Ground.Collection('test');

Ground.Collection is client-side only and depends on LocalCollection for now

Get documents and updates from a Meteor Mongo Collection via DDP

1  foo = new Ground.Collection('test');
2
3  foo.observeSource(bar.find());
4
5  Meteor.setTimeout(() => {
6    // Stop observing - keeping all documents as is
7    foo.stopObserver();
8  }, 1000);

Limiting the stored data

If you want to clean up the storage and eg. have it match the current subscription, now you can:

1  foo.keep(bar.find());

This will discard all documents not in the subscribed data

Limit the data stored locally

1  foo.keep(bar.find({}, { limit: 30 }));

This will discard all but 30 documents

Limit the data stored locall using multiple cursors

1  foo.keep(bar.find({ type: 'a' }, { limit: 30 }), bar.find({ type: 'b' }, { limit: 30 }));

This will keep at max 60 documents 30 documents of each type "a"/"b"

Clear the storage

1  foo.clear();

This will empty the in memory and the local storage

Contributions

Feel free to send issues, pull requests all is wellcome

Kind regards Morten