range-index

levelup based range index

range

levelup based range index

npm install [--save/--save-dev] range-index
IDNAMEAGESEX
1Divina Ventimiglia7F
2Nakisha Robuck54F
3Amira Markus18F
4Mohamed Kincannon60M
5Juana Ardon23F
6Hyon Davie60F
7Estell Cromer18F
8Jacob Neeley13M
9Carlene Weatherman42F
10Carie Markland7F
AGEID
71, 10
138
183, 7
235
429
542
604, 6

as seen in Database Indexes for The Inquisitive Mind

DOCUMENTCOUNTRIES
AAustralia, Canada, Portugal
BCanada, Portugal, Togo
CAlgeria, Canada, Portugal, Togo
DAlgeria, Canada, Togo
ECanada, Togo
FTogo
COUNTRYDOCUMENTS
AlgeriaC, D
AustraliaA
CanadaA, B, C, D, E
PortugalA, B, C
TogoB, C, D, E, F
var range = require('range-index');
var age = range('path/to/location');
age.put(18, 7, function (e) {
  if(e) throw e;
  console.log('index saved successfully');
});

countries.put('Portugal', 'A', function (e) {
  if(e) throw e;
  console.log('index saved successfully');
});
var user = age.get(18);
 
user.on('data', function (data) {
  assert(data.value == [3, 7]);
  assert(data.key == 18);
});
 
user.on('error', function (e) {
  throw e;
});
 
user.on('close', function () {
  console.log('Stream closed')
});
 
user.on('end', function () {
  console.log('Stream closed')
});

var country = countries.get('Portugal');
 
user.on('data', function (data) {
  assert(data.value == ['A', 'B', 'C']);
  assert(data.key == 'Portugal');
});
 
user.on('error', function (e) {
  throw e;
});
 
user.on('close', function () {
  console.log('Stream closed')
});
 
user.on('end', function () {
  console.log('Stream closed')
});
var users = age.all();
 
users.on('data', function (data) {
  console.log('Age: ', data.key, 'ID\'s: ', data.value)
});
 
user.on('error', function (e) {
  throw e;
});
 
user.on('close', function () {
  console.log('Stream closed')
});
 
user.on('end', function () {
  console.log('Stream closed')
});
var users = age.from(54);
 
users.on('data', function (data) {
  console.log('Age: ', data.key, 'ID\'s: ', data.value)
});
 
user.on('error', function (e) {
  throw e;
});
 
user.on('close', function () {
  console.log('Stream closed')
});
 
user.on('end', function () {
  console.log('Stream closed')
});

returned indexes:

AGEID
542
604, 6

var from_countries = countries.from('P');
 
from_countries.on('data', function (data) {
  console.log('Age: ', data.key, 'ID\'s: ', data.value)
});
 
from_countries.on('error', function (e) {
  throw e;
});
 
from_countries.on('close', function () {
  console.log('Stream closed')
});
 
from_countries.on('end', function () {
  console.log('Stream closed')
});

returned indexes:

COUNTRYDOCUMENTS
PortugalA, B, C
TogoB, C, D, E, F
var users = age.between(13, 23);
 
users.on('data', function (data) {
  console.log('Age: ', data.key, 'ID\'s: ', data.value)
});
 
user.on('error', function (e) {
  throw e;
});
 
user.on('close', function () {
  console.log('Stream closed')
});
 
user.on('end', function () {
  console.log('Stream closed')
});

returned indexes:

AGEID
138
183, 7
235

var between_countries = countries.between('A', 'C');
 
from_countries.on('data', function (data) {
  console.log('Age: ', data.key, 'ID\'s: ', data.value)
});
 
from_countries.on('error', function (e) {
  throw e;
});
 
from_countries.on('close', function () {
  console.log('Stream closed')
});
 
from_countries.on('end', function () {
  console.log('Stream closed')
});

returned indexes:

COUNTRYDOCUMENTS
AlgeriaC, D
AustraliaA
var users = age.until(18);
 
users.on('data', function (data) {
  console.log('Age: ', data.key, 'ID\'s: ', data.value)
});
 
user.on('error', function (e) {
  throw e;
});
 
user.on('close', function () {
  console.log('Stream closed')
});
 
user.on('end', function () {
  console.log('Stream closed')
});

returned indexes:

AGEID
71, 10
138
183, 7

var from_countries = countries.until('P');
 
from_countries.on('data', function (data) {
  console.log('Age: ', data.key, 'ID\'s: ', data.value)
});
 
from_countries.on('error', function (e) {
  throw e;
});
 
from_countries.on('close', function () {
  console.log('Stream closed')
});
 
from_countries.on('end', function () {
  console.log('Stream closed')
});

returned indexes:

COUNTRYDOCUMENTS
AlgeriaC, D
AustraliaA
CanadaA, B, C, D, E

test

npm test

MIT