0.2.1 • Published 9 years ago

dbb v0.2.1

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

dbb

Build Status Dependency Status devDependency Status Coverage Status

NPM

An easy to use database.

Example

var DBB = require('dbb');
var db = DBB('db.json');

db('keys').set('key', 'value');
db('posts').insert({ title: 'DBB is amazing' });

In db.json:

{
  "keys": {
    "key": "value"
  },
  "posts": [
    {
      "_id": "851e4d6-df24-42fb-b478-4a0c93d117e1",
      "title": "DBB is amazing"
    }
  ]
}

To query the data:

db('keys').get('key', function(err, key) {
  // do something with key
});
db('posts').find({title: 'DBB is amazing'}, function(err, post) {
  // do something with post
});

Table of Contents

$ npm install dbb --save

DBB stores data in a field which can be either be an object or an array.

{
  "field": {},
  "field": []
}

get and set method are for a document, also called an object.

// document
"field": {
  "key": "value",
  "key1": 1,
  "key2": 2
}

find, insert, and save are for a collection, which is basically an array.

// collection
"field": [
  { _id: "89cbfd78-8ec8-4338-8140-7a3efa5e89c6", name: "phil", age: 7 },
  { _id: "12f3af49-b2e8-4e60-ae1c-9fb259ae6670", name: "jack", age: 20 },
  { _id: "6f33c2bd-7bbf-4b4d-a8e6-1973a3fa4f63", name: "steve", age: 99 }
]

For each DBB's method, there is a synchronous version of it. For example, get and getSync or find and findSync.

Documents

Collections

DBB(file, options);

Specify what JSON file to use. If it doesn't exist, the JSON file will be created.

Arguments

  1. file (String): JSON file name.
  2. options (Object): Provide options for DBB to used. Currently, there is only one option which is backup. The backup creates a POST request to Hastebin and adds the link to the DBB_BACKUPS field. You can set how long every hour the backup should save.

Examples

var DBB = require('dbb');
var db = DBB('db.json');
// create a back up every 4 hours
DBB('db.json', {backup: 4});
db(field)

Arguments

  1. field (String): Specify what field to query.

Returns

(Object): Methods to use to query the database.

Examples

db(); // default
db('users');
db('posts').insert({title: 'hello world!'}); // converts to array

In json:

{
  "default": {},
  "users": {},
  "posts": [
    {"title": "hello world!"}
  ]
}

Documents

Get a key from the database.

Arguments

  1. key (String): Name of the key.
  2. callback(err, value) (Function): A callback which is called when reading the JSON file has finished, or an error occurs. Value is the key's value.

Examples

db().get('key', function(err, value) {
  if (err) throw err;
  // do something with value
});

Synchronous key.

Arguments

  1. key (String): Name of the key.

Returns

(*): Key's value

Examples

var key = db().get('key');
// do something with key

Get the whole object in the database.

Arguments

  1. callback(err, object) (Function): A callback which is called when reading the JSON file has finished, or an error occurs.

Examples

db().getAll(function(object) {
  // do something with the object.
});

Get the whole object in the database.

Arguments

  1. callback(err, object) (Function): A callback which is called when reading the JSON file has finished, or an error occurs.

Returns

(Object): Object in the database that holds all the key-value pairs.

Examples

var object = db().getAllSync();
// do something with object

Set a key with a value in the database.

Arguments

  1. key (String): Name of the key.
  2. value (*): Value of the key.
  3. callback(err) (Function): Optional A callback which is called when writing to the JSON file has finished, or an error occurs.

Examples

db().set('key', 'value', function(err, value) {
  if (err) throw err;
  // key is now save in the database
  // do something with value
});

Synchronous set. Returns undefined.

Arguments

  1. key (String): Name of the key.
  2. value (*): Value of the key. the JSON file has finished, or an error occurs. Value is the key's value.

Examples

db().setSync('key', 'value');

Collections

Find a document (object) in the database.

Arguments

  1. document (Object): Document also known as a object.
  2. callback(err, doc) (Function): A callback which is called when reading to the JSON file has finished, or an error occurs. Doc is the document (object).

Examples

db().find({name: 'Phil'}, function(err, doc) {
  if (err) throw err;
  // do something with doc
});

Synchronous find.

Arguments

  1. document (Object): Document also known as a object.

Returns

(Object): Document.

Examples

var phil = db().findSync({name: 'Phil'});

Get the whole collection in the database.

Arguments

  1. callback(err, docs) (Function): A callback which is called when reading to the JSON file has finished, or an error occurs. Docs is an array.

Examples

db().findAll(function(err, docs) {
  if (err) throw err;
  // do something with docs
});

Synchronous findAll.

Returns

(Array): Collection of docs.

Examples

var docs = db().getAll();

Insert a document (object) into the database.

Arguments

  1. document (Object): Document also known as a object.
  2. callback(err, doc) (Function): Optional A callback which is called when writing to the JSON file has finished, or an error occurs. Doc is the document inserted.

Examples

db().insert({name: 'Phil', email: 'birkal@outlook.com'}, function(err, doc) {
  if (err) throw err;
  // do something with doc
});

Synchronous insert. Returns undefined.

Arguments

  1. document (Object): Document also known as a object.

Examples

db().insert({name: 'Phil', email: 'birkal@outlook.com'});

Remove a key in the database.

Arguments

  1. key (String): Name of the key.
  2. callback(err) (Function): Optional A callback which is called when writing to the JSON file has finished, or an error occurs.

Examples

db().remove('key', function(err) {
  if (err) throw err;
  // key is now remove from the database
});
db('users').remove({name: 'Phil'}, function(err) {
  if (err) throw err;
  // document is now remove from the database
});

Synchronous sync. Returns undefined.

Arguments

  1. key (String): Name of the key.

Examples

db().removeSync('key');
db('users').removeSync({name: 'Phil'});

Save a document in the database.

Arguments

  1. document (*): Usually an object.
  2. callback(err) (Function): Optional A callback which is called when writing to the JSON file has finished, or an error occurs.

Examples

db('users').find({name: 'phil'}, function(err, user) {
  if (err) throw err;
  user.money++;
  user.emails.push('hello@gmail.com');
  user.posts = [];
  db('users').save(user, function(err) {
    if (err) throw err;
  });
});

Synchronous save. Returns undefined.

Arguments

  1. document (*): Usually an object.

Examples

var user = db('users').find({name: 'phil'});
user.name = 'jack';
db('users').saveSync(user);

DBB is a convenient method for storing data without setting up a database server. However, if you need high performance and scalability more than simplicity, you should stick to databases like MongoDB.

MIT