/nosqlite

human readable nosql type filesystem json store

Primary LanguageCoffeeScriptMIT LicenseMIT

nosqlite

nosqlite is human readable nosql type filesystem json store

Installation

npm install nosqlite

Usage

Create a connection

// Default path for store
connection = new(require('nosqlite').Connection)();

// Custom path for store
connection = new(require('nosqlite').Connection)('/path/to/store');

Select a database

// Default db is 'test'
db = connection.database('dummy');

Check if database exists

// Async
db.exists(function (exists) {
  if (!exists) console.log('Need to create it');
});

// Sync
if (!db.existsSync()) console.log('Need to create it');

Create a database

// Async
db.create(function (err) {
  if (err) throw err;
});

//Sync
db.createSync();

Destroy a database

// Async
db.destroy(function (err) {
  if (err) throw err;
});

//Sync
db.destroySync();

Create a document

If obj.id (or obj._id ) is not supplied, obj.id is auto generated.

// Async
db.post(obj, function (err, id) {
  if (err) throw err;
  console.log(id);
});

// Sync
// returns id
db.postSync(obj);

Get a document

// Async
db.get('bob', function(err, obj) {
  if (err) throw err;
  console.log(obj);
});

// Sync
db.getSync('bob');

Update a document

// Async
db.put('bob', {age: 35}, function (err) {
  if (err) throw err;
});

// Sync
db.putSync('bob', {age: 35});

Delete a document

// Async
db.delete('bob', function (err) {
  if (err) throw err;
});

// Sync
db.deleteSync('bob');

Find a document

// Async
db.find({hair: 'black'}, function (err, docs) {
  if (err) throw err;
});

// Sync
docs = db.findSync({hair: 'black'});

All documents

// Async
db.all(function (err, docs) {
  if (err) throw err;
});

// Sync
docs = db.allSync();

If you like this project, please watch this and follow me.

Testing

npm test

Contributors

Here is a list of Contributors

TODO

  • Auto ID generation
  • Authentication system
  • Map-Reduce (views)
  • Buffer writes internally
  • Concurrent writes from multi processes

I accept pull requests and guarantee a reply back within a day

License

MIT/X11

Bug Reports

Report here. Guaranteed reply within a day.

Contact

Pavan Kumar Sunkara (pavan.sss1991@gmail.com)

Follow me on github, twitter