0.3.0 • Published 9 years ago

leveldex v0.3.0

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

leveldex

level indexing and finding.

Originally based on stagas/level-indexing.

Installing

npm install leveldex

Example

var assert = require('assert');

var level = require('level');
var sublevel = require('sublevel');
var index = require('leveldex');

// sublevel instance
var db = sublevel(level('./level-test'));

// users sublevel (needs json value encoding)
var users = db.sublevel('users', { valueEncoding: 'json' });

// use index
index(users);

// index some properties
users
.index('username')
.index('email');

// a user object
var user = {
  id: 1,
  username: 'foobar',
  email: 'foo@bar'
};

users.put(user.id, user, function(err){
  // properties are now indexed
  users.by('username', 'foobar', function(err, value){
    assert.deepEqual(user, value);
  });

  users.byEmail('foo@bar', function(err, value){
    assert.deepEqual(user, value);
  });

  users.find(1, function(err, value){
    assert.deepEqual(user, value);
  });

  users.find('foobar', function(err, value){
    assert.deepEqual(user, value);
  });

  users.find('foo@bar', function(err, value){
    assert.deepEqual(user, value);
  });
});

API

leveldex(sublevel)

Enable indexing on a sublevel db instance.

index(name)

Indexes a property name.

by(index, key, fn)

Gets a value from index by key. Key can be an object with a property of index.

find(key, fn)

Finds key in all indexes. Key can be an object.

License

MIT